linux vps端口转发一键脚本
什么是端口转发?为什么要转发?
准确来讲叫流量转发,因为流量是基于端口的,所以一般称为端口转发。
阿里云限量代金券 | 此广告位出租25元/月 |
比如电信到伯力很差,我买了个上海联通鸡做转发,那么就是
电信->联通:1200->伯力:4900,那么我访问联通的1200端口,等于访问伯力的4900端口
转发还可以用于公网frp,反代网站等用途
用什么转发?
推荐iptables或者firewalld,都是内核级别的转发,性能损耗极少。
如果用gost/brook等第三方工具转发,流量大或者连接数过多的时候cpu和负载压力变大,对于nat小鸡特别不友好。
但是无论是iptables还是firewalld这种内核命令对没有任何网络基础的新手用户来说太复杂了,下面推荐个vps端口转发一键脚本。
准备工作
centos7,默认使用firewalld,需要切换到iptables,将firewalld停掉。
查看firewalld状态
systemctl status firewalld
如果是活动状态就把它停掉
systemctl stop firewalld
关闭firewalld自启
systemctl disable firewalld
如果你是debian那可能无需这个准备工作,但是你要开启内核级别转发,请按下面操作:
基于iptables转发(适用于centos7,debian8)
#先安装iptables,debian换成 apt-get install
yum install -y iptables yum install -y iptables-services
#开机启动
systemctl start iptables systemctl enable iptables
#查看服务状态,显示绿色active就可以了
service iptables status
#避免不必要的麻烦所以要备份iptables规则
cp -a /etc/sysconfig/iptables /etc/sysconfig/iptables.bak
或
iptables-save > /etc/sysconfig/iptables.bak
恢复命令
iptables-restore < /etc/sysconfig/iptables.bak
#清空所有防火墙规则,避免因端口没开造成影响
iptables -F iptables -X
到这里就准备工作结束,下面使用下面这个转发脚本
这是知名的转发脚本,支持debian和centos,这个脚本是帮你一键执行iptables命令,还是调用iptables,非第三方转发软件,支持ddns,感谢arloor https://github.com/arloor/iptablesUtils
wget --no-check-certificate -qO natcfg.sh https://raw.githubusercontent.com/arloor/iptablesUtils/master/natcfg.sh && bash natcfg.sh
注意:有安装宝塔面板的vps安装iptables后会导致宝塔自带firewalld防火墙关闭,请重启iptables后手动放行网站80,443,8888端口
#删除转发端口后要重启iptables服务才能真正生效
systemctl restart iptables
#查看firewalld防火墙状态并关闭firewalld自启(这样做是为了确保宝塔不会再次把firewalld作为默认防火墙)
systemctl status firewalld
关闭firewalld自启
systemctl disable firewalld
#改用iptables放行网站和宝塔端口
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 443 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 8888 -j ACCEPT
#保存iptables规则
iptables-save > /etc/sysconfig/iptables
#查看已开放端口
iptables -L -n
这里我们会发现通过脚本增加的端口不会出现在这里,脚本作者考虑到了这一点,这样就防止我们管理自己网站端口时看起来凌乱了。
#删除已开放端口
比如我现在有 2 个相同的端口,我想删除一个:
可以用这个命令删除第二行的端口
iptables -D INPUT 2
结果:
最后再保存一次规则
iptables-save > /etc/sysconfig/iptables
最后主机哥提醒:这个脚本好像有bug,第一次添加端口转发后要删除再重新添加才有效果。