端口转发

原创:https://blog.csdn.net/ndzjx/article/details/113853835

linux 端口转发的方式很多种,除了防火墙(模拟路由器的功能),其他都是软件方式,在处理长连接时有问题(比如server挂了,代理还存在,就会出现连接成功,接收数据时失败。),下面详细说说防火墙的方式:

其他方式参考:Linux端口转发的几种常用方法 | 《Linux就该这么学》 

https://www.cnblogs.com/wspblog/p/4297160.html

代理部署步骤:


使用CentOS7.0以上的机器,用防火墙做转发,
(0)安装服务
yum install firewalld firewall-config
(1) 开启防火墙 systemctl start firewalld
    开机自启服务:systemctl enable firewalld
(2) 开启伪装IP
firewall-cmd --permanent --add-masquerade 
(3)配置转发选项
vi /etc/sysctl.conf
在文本内容中添加:net.ipv4.ip_forward = 1
sysctl -p
(4) 配置端口转发,将到达本机的2222端口的访问转发到另一台服务器(比如:192.168.3.14)的2222端口。
添加:firewall-cmd --permanent --add-forward-port=port=2222:proto=tcp:toaddr=192.168.3.14:toport=2222
(5) 重新载入,使其生效
firewall-cmd --reload 


------help

firewall-cmd --permanent --add-forward-port=port=80:proto=tcp:toaddr=192.168.3.14:toport=80
firewall-cmd --permanent --add-forward-port=port=443:proto=tcp:toaddr=192.168.3.14:toport=443

将当前防火墙的规则永久保存(之前的命令如果加了--permanent,这里就不用执行
firewall-cmd --runtime-to-permanent

删除:
firewall-cmd --remove-forward-port=port=80:proto=tcp:toport=8080:toaddr=192.168.1.1 --permanent

开机启动
systemctl is-enabled firewalld

firewall-cmd --query-masquerade # 检查是否允许伪装IP
firewall-cmd --add-masquerade   # 允许防火墙伪装IP
firewall-cmd --remove-masquerade# 禁止防火墙伪装IP

//=====================================
如果使用老的iptables方式:

(0)
vi /etc/sysctl.conf
在文本内容中添加:net.ipv4.ip_forward = 1
sysctl -p

(1)安装服务:
yum install iptables-services
启动:
systemctl start iptables
开机启动:
systemctl enable iptables

(2)配置转发 
// 把 本机192.168.3.141/2222 转发到192.168.3.28/2222
iptables -t nat -A PREROUTING -d 192.168.3.141 -p tcp --dport 2222  -j DNAT --to-destination 192.168.3.28:2222
iptables -t nat -A POSTROUTING -d 192.168.3.28 -p tcp --dport 2222 -j SNAT --to 192.168.3.141
或者
iptables -t nat -A PREROUTING -p tcp --dport 2222  -j DNAT --to-destination 192.168.3.28:2222
iptables -t nat -A POSTROUTING -d 192.168.3.28 -p tcp --dport 2222 -j MASQUERADE

保存:(保存之前,测试可不可以telnet通,不通的话看看FORWARD表尽量没有reject 以免影响)
service iptables save

----help
清空 iptables -t nat -F PREROUTING
查看 iptables  -t  nat  -nL --line-number
删除 iptables -t nat -D PREROUTING 1

查看占用端口的进程:
netstat -tunlp|grep 端口号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值