闲者博客 - 出口 2022-03-11T21:22:00+08:00 Typecho https://bk1314.com/feed/atom/tag/%E5%87%BA%E5%8F%A3/ <![CDATA[LINUX IPTABLES 服务器多IP解决循环出口IP,否则永远是主IP请求别人机器]]> https://bk1314.com/61.html 2022-03-11T21:22:00+08:00 2022-03-11T21:22:00+08:00 飞鱼 http://www.typecho.org 希望:实现对外发送请求时,对方看到我的出口ip每次都是不一样的,多个ip轮训作为出口IP

方案:iptables的nth模块

more

一.查看防火墙状态

 service firewalld status

防火墙状态

(disabled 表明 已经禁止开启启动 enable 表示开机自启,inactive 表示防火墙关闭状态 activated(running)表示为开启状态)

安装iptables防火墙及操作:

yum install iptables-services

常用命令如下:

systemctl start iptables #启动

systemctl status iptables #查看运行状态

systemctl restart iptables.service #重启

systemctl stop iptables.service #停止

systemctl enable iptables.service #设置开机启动

systemctl disable iptables.service #禁止开机启动

iptables -F -t nat #清空nat规则 也就是下面的多IP设置的规则里面

二.查看服务器请求外网IP

curl icanhazip.com

多执行几次看看是不是同一个

三.要多IP服务器循环出口IP

 /sbin/iptables -t nat -I POSTROUTING -m state --state NEW -p tcp -m multiport --dports 80,443 -o eth0 -m statistic --mode nth --every 1 --packet 0 -j SNAT --to-source 122.52.62.33

#解释上面命令意思:
--dports 80,443意思80和443 意思请求别人的这些端口就循环IP
-o eth0 这个是你网卡 出口网卡哦
--every 1 这个数字1是代表第一条IP 如果你输入多次就每次数字叠加
--to-source 122.52.62.33  你多个IP其中一个IP

列如我现在添加第二条
/sbin/iptables -t nat -I POSTROUTING -m state --state NEW -p tcp -m multiport --dports 80,443 -o eth0 -m statistic --mode nth --every 2 --packet 0 -j SNAT --to-source 122.52.62.34

四.执行后记得需要保存

service iptables save

(好了 你可以尝试curl icanhazip.com看看 每次IP都不一样了,注意哦 防火墙需要启动哦)

]]>