关于【端口转发】这篇文章挺全面的,共有8种场景,研究了一下很多时候还是挺方便得。 但是对于我来说经常用到的就是服务器只提供了本地端口服务器,想要远程访问很不方便。比如部署了“127.0.0.1:3306”的mysql服务,我只能用命令行了。 我又不想修改测试环境,毕竟要和发布环境保持一致。所以用端口转发是个好方案。(ps:mysql那个我使用【adminer】也很方便。)
执行ssh -c -f -n -g -l 3306:127.0.0.1:3306 [email protected] -p 22就能将下面图片所示的mysql端口转发为对外能访问的端口,可以愉快地用navicat了。 上面命令可解释为ssh -c -f -n -g -l 监听端口:目标ip:目标端口 用户名@转发服务器ip -p 转发服务器端口,可参考【端口转发】的更多用法。
编译
由于只需要转发功能,去掉http模块(加入-s选项),这样编译出来的nginx体积很小,只有转发功能可用额。 ./configure --prefix=/usr/local/nginx --with-stream --without-http make 提取objs/nginx即可
配置文件
运行程序
mkdir logs conf vim conf/nginx.conf # 写入步骤2的配置 sudo ./nginx -p . # 指定前缀路径即可
右键管理员权限打开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可以删除已有端口转发记录。
端口转发真的很实用额,我看了那8中通过ssh进行的端口转发,都是实用干货啊。与之对应的是端口映射,以前用过源地址转换和目的地址转换也是很使用的功能额,只是我用的比较少罢了。