| 2021-07-8
端口转发(Port forwarding),有时被叫做隧道,是安全壳(SSH) 为网络安全通信使用的一种方法。端口转发是转发一个网络端口从一个网络节点到另一个网络节点的行为,其使一个外部用户从外部经过一个被激活的NAT路由器到达一个在私有内部IP地址(局域网内部)上的一个端口。
ssh转发
执行ssh -C -f -N -g -L 3306:127.0.0.1:3306 admin@192.168.1.10 -p 22就能将下面图片所示的mysql端口转发为对外能访问的端口,可以愉快地用Navicat了。
上面命令可解释为ssh -C -f -N -g -L 监听端口:目标IP:目标端口 用户名@转发服务器IP -p 转发服务器端口,可参考【端口转发】的更多用法。
Nginx转发
编译
由于只需要转发功能,去掉http模块(加入-s选项),这样编译出来的Nginx体积很小,只有转发功能可用额。
./configure --prefix=/usr/local/nginx --with-stream --without-http
make 提取objs/nginx即可
配置文件
user root;
worker_processes auto;
events {
use epoll;
worker_connections 1024;
}
stream {
server {
listen 3000; # 监听3000的tcp连接
proxy_pass 127.0.0.1:33306; # 转发33306端口
proxy_pass unix:/var/lib/mysql/mysql.socket; # 可转发unix文件连接
}
server {
listen 3001 udp; # 监听3001的udp端口
proxy_pass 127.0.0.1:3001;
proxy_responses 1;
}
}
运行程序
mkdir logs conf
vim conf/nginx.conf # 写入步骤2的配置
sudo ./nginx -p . # 指定前缀路径即可
Windows转发
右键管理员权限打开cmd
添加端口转发
执行命令netsh interface portproxy add v4tov4 listenaddress=127.0.0.1 listenport=4430 connectaddress=192.168.1.10 connectport=443
表示访问127.0.0.1:4430会转发到192.168.1.10:443上。
执行netsh interface portproxy show all可以查看当前已有的端口转发的记录。
执行netsh interface portproxy delete v4tov4 listenaddress=127.0.0.1 listenport=4430可以删除已有端口转发记录。
好用的端口转发工具,小编推荐花生壳。
1.首先下载新花生壳后,输入用户名密码登录。
2.双击你想映射的域名,进入花生壳端口映射添加界面,点击打开内网映射。
3.应用名称可以随便填个好记的,内网主机就是你想被公网访问的那台电脑IP地址,内网端口就是希望被映射的端口。
4.现在端口映射窗口就会添加一条映射记录,此时,公网只要使用花生壳分配的这个域名+端口,就可以访问内网的主机了。
举个栗子,你妈妈要到学校给你送旺仔牛奶,只知道你在三年级2班,不知道你在学校那栋楼那个教室,这时候就需要学校门卫告诉你妈妈,你的班级在A栋5楼之后,你才能收到旺仔牛奶。如果你想很多人都给你送旺仔牛奶,但保安会嫌麻烦就不给再他们指路了。但是你还想要牛奶怎么办?一、是买通门卫(价格昂贵);二、是在校门口弄个牌子(花生壳)上面写着你教室位置,你成本将大大降低。
总的来说花生壳可以使设备在内网或者没有固定/公网IP,也能轻松通过公网访问。
体验环境:
花生壳软件版本:101.81.123.144
电脑操作系统:Windows10
测试账号级别:个人专业版(含内网穿透)
以前的互联网用户没那么多,公网IP地址资源尚未太枯竭的情况下,很多人都是直接通过路由器映射的方式实现将内网的服务发布到外网,实现外网访问的。随着互联网用户增多IP地址不够用了,内网IP地址会不断变化。这时候就需要用到内网穿透也就是花生壳了。
文章来源:今日头条