端口转发总结归纳

Posted Shanfenglan7

tags:

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

1. windows

1.1 netsh

需要管理员权限
防火墙必须关闭

基础命令

#查看已有的转发规则
netsh interface portproxy show all

#防火墙状态
netsh firewall show state 

#查看所有转发规则
netsh interface portproxy show all

#删除规则
netsh interface portproxy delete v4tov4 listenport=80 listenaddress=192.168.1.80

#开启系统防火墙
netsh advfirewall set currentprofile state on

#关闭防火墙
netsh advfirewall set currentprofile state off

#确保3340端口可以被转入
netsh advfirewall firewall add rule name=”3340” protocol=TCP dir=in localip=10.1.1.110  localport=3340 action=allow

1. 本地转发

我们配置转发逻辑为将5555端口的流量转发到3389端口

netsh advfirewall set currentprofile state off
netsh interface portproxy add v4tov4 listenport=5555 listenaddress=192.168.171.135 connectport=3389 connectaddress=192.168.171.135 protocol=tcp
netsh interface portproxy show all


2. 远程转发

将5556端口的流量转发到192.168.171.139的22端口

netsh interface portproxy add v4tov4 listenport=5556 listenaddress=192.168.171.135 connectport=22 connectaddress=192.168.171.139 protocol=tcp


删除上面配置的转发规则:

netsh interface portproxy show all
netsh interface portproxy delete v4tov4 listenport=5555 listenaddress=192.168.171.135
netsh interface portproxy delete v4tov4 listenport=5556 listenaddress=192.168.171.135
netsh interface portproxy show all

1.2 natbypass

不需要管理员权限
不需要管理员权限
不需要管理员权限

https://github.com/cw1997/NATBypass

基础命令

命令用法
nb -tran port1 ip2:port2只监听port1,当前主机port1端口接收到流量时,将其转发给ip2:port2
nb -listen port1 port2同时监听两个端口,并对两个端口的数据进行互相转发。
nb -slave ip1:port1 ip2:port2当前主机主动连接ip1:port1和ip2:port2并当作桥梁对数据进行转发。

1. 本地转发

nb-windows-386.exe -tran 5555 192.168.171.135:3389

2. 远程转发

nb-windows-386.exe -tran 5555 192.168.171.135:3389


1.3 ew

不需要管理员权限

基础命令

命令用法
ew -s lcx_tran -l port1 -f ip2 -g port2只监听port1,当port1有流量的时候将其转发给ip2的port2
ew -s lcx_listen -l port1 -e port2监听port1与port2并转发两个端口间的数据
ew -s lcx_slave -d ip1 -e port1 -f ip2 -g port2主动连接IP1的port1和ip2的port2并对这两端口间的数据进行转发
ew -s rssocks -d ip1 -e port1创建一个socks5的反向链接,配合lcx_listen使用
ew -s ssocksd -l port1在本地建立socks5服务,端口为port1
ew -s rcsocks -l port1 -e port2监听port1与port2并转发两个端口间的数据

1. 本地转发

ew_for_Win.exe -s lcx_tran -l 3333 -f 192.168.171.135 -g 3389

2. 远程转发

ew_for_Win.exe -s lcx_tran -l 3333 -f 192.168.171.139 -g 22

1.4 iox

不需要管理员权限
不需要管理员权限
不需要管理员权限

基本用法

-k 656565#启动流量加密,密码是AAA。

命令用法
iox -l port1 -l port2同时监听两个端口并互相转发数据
iox fwd -l port1 -r ip2:port2监听port1,并将得到的流量转发给ip2的port2
iox fwd -r ip1:port1 -r ip2:port2主动连接两个目标并转发双方的流量
iox proxy -l port1在port1上开启socks5代理

如果我们需要在被控主机上开启socks服务并将服务端口转发到其他机器上则需要如下命令:

#在被控机器上执行,作用是开启socks5代理并回连ip1:port1
iox proxy -r ip1:port1
#在另一台机器上执行
iox proxy -l port1 -l port2

此时我们使用另一台机器的port2端口即可使用socks服务。

https://github.com/EddieIvan01/iox

1. 本地转发

将本地5555端口的流量转发到192.168.171.135的3389

iox64.exe fwd -l 5555 -r 192.168.171.135:3389


2. linux

开启端口转发功能

sysctl -p
vi /etc/sysctl.conf   
net.ipv4.ip_forward=1  #增加这一行 
sysctl -p

2.1 iptables

需要root权限
需要root权限
需要root权限

1. 本地转发

将```外网访问``本地的4444端口的流量转发到本地的22端口:

iptables -t nat -A PREROUTING -p tcp --dport 4444 -j REDIRECT --to-ports 22


本地访问本地的4444端口的流量转发到本地的22端口:

iptables -t nat -A OUTPUT -p tcp --dport 4444 -j REDIRECT --to-ports 22

2. 远程转发

将本地192.168.171.139:5555端口的流量转发到192.168.171.135:3389

iptables -F -t nat
iptables -t nat -A PREROUTING --dst 192.168.171.139 -p tcp --dport 5555 -j DNAT --to-destination 192.168.171.135:3389
iptables -t nat -A POSTROUTING --dst 192.168.171.135 -p tcp --dport 3389 -j SNAT --to-source 192.168.171.139

2.2 ssh

需要知道代理服务器的账号密码,如果是本地代理则需要知道当前机器的账号密码
需要知道代理服务器的账号密码,如果是本地代理则需要知道当前机器的账号密码

1. 本地端口转发

将本地的5555端口的流量通过192.168.171.139转发到192.168.171.139的22端口。

ssh -fCNg -L  5555:192.168.171.139:22 root@192.168.171.139

2. 远程端口转发

监听3434端口,将3434端口的流量通过192.168.171.139转发到192.168.171.135:3389

ssh -fCNg -L  3434:192.168.171.135:3389 root@192.168.171.139

3. socks代理

ssh -fCNg -D  5559 root@192.168.171.139


4. 清除设置的代理

ps -ef | grep "ssh -fCNg"
ps -ef | grep "ssh -fCNg"|awk 'print $2'|xargs kill -9
ps -ef | grep "ssh -fCNg"

2.3 firewall

firewall-cmd --permanent --add-masquerade
firewall-cmd --permanent --add-forward-port=port=5555:proto=tcp:toaddr=192.168.172.135:toport=3389
firewall-cmd --reload #删除刚才的配置

2.4 socat

不需要root权限
不需要root权限
不需要root权限


socat TCP4-LISTEN:5555,reuseaddr,fork TCP4:192.168.171.135:3389

2.5 portmap

https://github.com/shanfenglan/test/blob/master/portmap

不需要root权限
不需要root权限
不需要root权限


1. 本地端口转发

./portmap -m 1 -p1 5555 -h2 192.168.171.135 -p2 3389

3. 参考文章

https://www.cnblogs.com/xtxk110/p/14678178.html

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

ssh隧道 学习总结

201621123062《java程序设计》第九周作业总结

端口转发

《路由协议与交换技术》重点知识总结(路由交换知识点)

《路由协议与交换技术》重点知识总结(路由交换知识点)

《路由协议与交换技术》重点知识总结(路由交换知识点)