我本来不喜欢在CSDΝ上发文,因为我平时搜索都是ban掉这个网站的,但是看到网上误导的信息太多了,还是把一些文章写出来罢
1.内核级转发工具
为什么叫内核级转发工具,因为这个功能是由Linux内核实现的,具体原理可以看DNAT ,SNAT细节。
从本质上来是,这个不是端口转发软件,而是NAT软件,网络数据包进入Linux内核的时候用DNAT转换,离开Linux内核时,通过SNAT把地址换回去。
DNAT,SNAT可以用用户态工具iptables,ufw,firewall-cmd实现,原理都是一样。
进行NAT需要开启IP转发,否则Linux内核会丢掉
/proc/sys/net/ipv4/ip_forward的值必须为1
开机自动设置,可以修改
vim /etc/sysctl.conf
打开
net.ipv4.ip_forward=1
一般需要两条链,DNAT,SNAT链。
如果是转发到本机的端口,一般不需要SNAT链。
以iptables工具为例
把本机的TCP 22转发到2222,假设本机为192.168.1.100
iptables -A PREROUTING -t nat -p tcp --dport 22 -j DNAT --to-destination 192.168.1.100:2222
iptables上面