端口转发

Posted 隐念笎

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了端口转发相关的知识,希望对你有一定的参考价值。

windows系统

包括xp  2003,2008等,都自带portproxy功能。目前只支持tcp协议的端口转发,前提需要作为portproxy的主机需要安装IPV6,安装可以不启用IPV6。


A.配置方法
假定需要通过192.168.1.8的14941端口连接192.168.1.118的1494端口,则需要在192.168.1.8主机的命令行输入如下语句
netsh  interface ipv6 install
netsh interface portproxy add v4tov4  listenaddress=192.168.1.8 listenport=14941 connectaddress=192.168.1.118  connectport=1494

---如果已经安装IPV6,第一条可以不需要
---如果操作系统开启了主机防火墙,需要放行TCP 14941的入站连接
---2008防火墙较以前版本有较大改动,可以参考如下链接:

http://pcedu.pconline.com.cn/soft/virus/safe/0710/1130476.html

如果想取消上面配置的端口转发,可以用如下语句:

netsh interface  portproxy delete v4tov4 listenaddress=192.168.1.8  listenport=33891

如果想查看已经配置了哪些端口转发,可以用如下语句:

netsh interface  portproxy show  v4tov4

B.优点
可以随时根据需要添加或删除端口转发条目,并且重启操作系统仍能自动保存之前的配置并自动启用,不像HAproxy修改完配置文件还需重启HAproxy。

网上有的说xp配置端口转发不起作用,估计是没有安装IPV6的缘故,用xp测试,安装了IPV6后可以实现端口转发,并且不需要开启路由和远程访问服务。

另外考虑到端口转发的冗余,可以多台主机都配置端口转发,且不用指定本地监听地址,这样可以通过操作系统提供浮动地址来实现冗余:
netsh  interface portproxy add v4tov4 listenport=14941 connectaddress=192.168.1.118  connectport=1494

程序实现动态添加的时候,可以telnet到每台都添加条目,也可以只与虚地址联系,每次都检查是否有对应的映射条目(根据ica文件中需要连接的citrix服务器的IP地址来检查),如果没有则命令行添加,添加时要确保本地端口不能被占用,并且还需要考虑防火墙,用netsh添加入站端口访问规则。

----需要citrix主机开启telnet服务,并设置访问控制,只允许特定主机连接。

Linux系统

socat TCP4-LISTEN:188,reuseaddr,fork TCP4:192.168.1.22:123 &

(在本地监听188端口,并将请求转发至192.168.1.22的123端口)



TCP4-LISTEN:在本地建立的是一个TCP ipv4协议的监听端口;
reuseaddr:绑定本地一个端口;
fork:设定多链接模式,即当一个链接被建立后,自动复制一个同样的端口再进行监听

socat启动监听模式会在前端占用一个shell,因此需使其在后台执行。

以上是关于端口转发的主要内容,如果未能解决你的问题,请参考以下文章

Linux下本地端口转发

vmware的端口转发(实用)

配置小米路由器 80 端口转发到内网

2021-10-09--使用SecureCRT进行端口转发

charles 端口转发

socat 端口转发工具,脚本一键安装配置