开发中经常需要外网服务映射到本机内网服务的需要,便于调试。

以前都是同事帮着配,这两天自己也看了一下 ssh 端口转发。 同事分分钟钟搞定的事情,自己折腾了 2 天, 真是弱爆了。

最初老想不明白一件事,为什们外网服务器能够找到我的内网机器,现在才明白原来走的是 ssh 隧道。

需求我的内网机器  192.168.9.100, 我的阿里云外网 123.56.86.52,  现在需要所有对 123.56.86.52  80 端口的访问都映射到  192.168.9.100 的 80 端口。

显然 123.56.86.52 访问不到  192.168.9.100, 但 192.168.9.100 能访问到 123.56.86.52 , 所以很简单 ssh 建立一个远程端口转发就行了。

1  在 192.168.9.100 上执行

ssh -N -v -R 3000:127.0.0.1:80 root@123.56.86.52

-R 表示远程转发,  这句话的意思是 通过 ssh 连接到 123.56.86.52,让 123.56.86.52 监听自己的 3000 端口, 所有通过 3000 端口的数据都通过 ssh 转发到 127.0.0.1 的 80 端口。

这里 127.0.0.1 就是 192.168.9.100 这个机器。  在  ssh 连接的时候通道就建立了, 以后所有的通信都走的是这个通道。

2 既然  123.56.86.52 已经监听在 3000 端口了, 接下来就非常简单了,  服务器上用 nginx 做一个反向代理, 把  80 端口代理到  3000 端口就行了

123.56.86.52 上 nginx 配置如下

location / {
root /usr/share/nginx/html;
index index.html index.htm;
proxy_pass http://127.0.0.1:3000;
proxy_set_header Host $host:80;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Via "nginx";
}

现在外网就成功映射到了我的内网机器

看着同事们 ssh 各种打洞, 各种玩法, 只能膜拜。  ssh 功能强大,通过 ssh 可以在家里随便访问公司内网电脑, 在公司内网电脑也可以远程操作家里的内网电脑。

想学好 ssh 的同学推荐一本书  SSH -The Definitive Guide, 2nd Edition.pdf ,抽空我也要好好学一下。

但最重要的还是要理论结合实际,多看多练。

ssh 端口转发实现外网 80 端口映射到内网 80 端口的更多相关文章

  1. linux下内网端口转发工具:linux版lcx [实现远程内网维护]

    这个工具以前使用的初衷是内网渗透,需要将内网ssh端口转发到外网服务器上.但这个工具同样适用于运维工程师进行远程内网维护. 当然这一切的前提是内网可以访问外网,检测方法当然就是直接ping 一个外网I ...

  2. frp端口映射穿透内网

    前言 frp 是一个高性能的反向代理应用,可以轻松地进行内网穿透,对外网提供服务,支持 TCP.UDP.HTTP.HTTPS 等协议类型,并且 web 服务支持根据域名进行路由转发. Github: ...

  3. Apache 2.4.7在CentOS6.4中安装配置反向代理解决单外网IP对应多个内网主机的方法实践

    欢迎转载,转载时请保留全文及出处. Apache 2.4.7在CentOS6.4中安装配置反向代理解决单外网IP对应多个内网主机的方法实践 Apache安装 下载源程序(http://httpd.ap ...

  4. 通过rinetd实现端口转发,同时访问阿里云RDS的内外网

    配置方法如下: 1 wget http://www.boutell.com/rinetd/http/rinetd.tar.gz&&tar -xvf rinetd.tar.gz& ...

  5. NAT、端口映射、内网穿透、公网IP都是啥

    原文地址:https://wuter.cn/1756.html/ 一.IPv4地址 IP协议是为计算机网络相互连接进行通信而设计的协议,它是能使连接到网上的所有计算机网络实现相互通信的一套规则. 这里 ...

  6. iptables后,外网访问网站可以,内网无法访问【已解决】

    最近,到处看到有人问这个问题,怎么以前没人问,现在这么多人问呢?前两天我还在华为的论坛上仔细的说了这个问题,现在复制到这边来.希望能帮助大家理解这个问题. 这是个理论问题,我们先从NAT讲起:NAT有 ...

  7. CentOS下OpenVPN实现公网IP映射到内网(iptables转发功能)(转)

    说明:这种方案的实现前提是必须要有一台拥有公网IP的电脑,OpenVPN搭建过程很普通,关键技术在于iptables的转发.搭建教程可能有点旧了,可以只看iptables的关键点技术. 方案背景: 公 ...

  8. frp内网 穿透映射使内网svn可外网访问

    起因 公司svn目前部署在内网服务器上,现在想在家中也可以使用,因此需要外网访问内网的工具 经过 使用过几个产品: utools,一个小巧的windows下的工具,内网映射只是它的一个小功能,支持tc ...

  9. 网吧局域网里的设置外网IP地址、设置内网IP地址、限制内网速度和路由器共享

    现在啊,网吧的需求越来越高,同时在经济比较充裕的情况下,作为网吧的老板可能希望打造全千兆的网吧,让每个进入网吧的人都能充分体验高速的感觉,当然更重要的是在同行竞争中处于上游,特别是对网络游戏爱好者的吸 ...

随机推荐

  1. Xshell 连接Linux虚拟机失败解决办法

    当我们在VMWare上安装好Ubuntu虚拟机后,有时候会需要使用多个terminal窗口,但是在虚拟机中多个窗口互相切换查看不方便,这时候用物理机的xshell工具连接到虚拟机中去就显得很方便.直接 ...

  2. 第几天——第九届蓝桥杯C语言B组(省赛)第一题

    原创 标题:第几天 2000年的1月1日,是那一年的第1天. 那么,2000年的5月4日,是那一年的第几天? 注意:需要提交的是一个整数,不要填写任何多余内容. 这题是送分题,只需要注意一下2000年 ...

  3. PyCharm社区版+Django搭建web开发环境-1

    PyCharm开源社区版不像商业版那样可以直接通过Django来创建项目,必须通过以下几个步骤进行: 1. 创建项目:在cmd命令行下输入:django-admin startproject Demo ...

  4. Reporting Service服务SharePoint集成模式安装配置(6、安装Reporting services Add-in for SharePoint 外接程序)

    第五步骤 : 安装Reporting services Add-in for SharePoint 外接程序 RS 外接程序是在 SharePoint 服务器上运行用于 SharePoint 产品的 ...

  5. SELinux导致无法访问外网,PHP连接MySQL异常Can't connect to MySQL server、redis程序访问提示Redis server went away的解决方法

    今天上班遇到的问题,新配的Linux服务器,php.Apache和一系列扩展插件装好后,在本地好好的程序移上去就一直抱数据库连接错误,而用sql命令却能连接上去, 做了一个简单的判断数据库连接页面还是 ...

  6. leetcode 加一

    给定一个非负整数组成的非空数组,在该数的基础上加一,返回一个新的数组. 最高位数字存放在数组的首位, 数组中每个元素只存储一个数字. 你可以假设除了整数 0 之外,这个整数不会以零开头. 示例 1: ...

  7. [原创] 思维导图笔记(二):SQL

    为了补一补知识体系上的缺漏,最近找了看完了Ben Forta写的<Sams Teach Yourself SQL in 10 Minutes>,翻译过来叫<SQL必知必会>.从 ...

  8. 多进程《三》join方法

    一 Process对象的join方法 在主进程运行过程中如果想并发地执行其他的任务,我们可以开启子进程,此时主进程的任务与子进程的任务分两种情况 情况一:在主进程的任务与子进程的任务彼此独立的情况下, ...

  9. Android app ADB命令

    * 查看设备 adb devices ps这个命令是查看当前连接的设备, 连接到计算机的android设备或者模拟器将会列出显示 若有多台安卓设备,可以通过在adb后面加上 -s <设备id&g ...

  10. scrollto 到指定位置

    goTo = function(target){ var scrollT = document.body.scrollTop|| document.documentElement.scrollTop ...