如何拯救被墙服务器
前提
首先你要确定你的服务器是否被墙了,先排除客观上的问题,诸如欠费、流量用尽、被恶意攻击、被当地运营商挂起等服务器处于异常状态,应先自行或联系客服解决。
然后再逐一排除问题:
1.管理后台显示 vps 运行正常,ssh 登录服务器也正常,但国内无法 ping 通,境外可以,一般该 IP 是被黑名单,测试方法可以参考载入IPIP进行甄别。
2.可以 ping 通,也可以 telnet 过去,但 ssh 无法正常登录,抓包或日志显示应答超时,这个时候一般是 TCP 阻断。
3.域名解析到该 IP 后网站加载一直在打转无法加载,一般是 IP 段已经被 DNS 污染。
4.连接不稳定,经常断线,连接服务器时候经常莫名被断线,敲击命令时候延迟非常大,极小概率为 TCP 干扰。
5.服务器 22/80/443 等常用端口一切正常,可是部分端口被关闭,排除运营商通知,一般是端口被墙。
补救
无论遇到哪种被墙的方式,都证明这台服务器不太安全了,你需要从根本上解决问题就是更换服务器,不过可以采取如下补救措施抢救一下:
1.向当地 idc 提出更换 IP,诸如 vultr 和 azure 都可以随时切换 ip 的。
2.使用跳板机,国内服务器转发。阿里云等厂商的服务器,或不过墙的 IPLC 服务器,大概率与被墙 vps 能直接通信,做个转发便即可正常使用,代价是多买一个国内服务器。顺道说一下,如果国外线路不好,用转发方式也能大幅提升网速,降低被墙概率,具体操作请移步附录。
3.使用 CDN 服务,CDN 的公共 ip 基本不会被封,将域名解析到 CDN,流量经过 CDN 再到被墙服务器,代价是需要一个域名并配置 CDN 服务。
4.换端口。针对端口被墙情形,更换新端口和加密方式,或者使用更高级的重建梯子方法,诸如 trojan/v2+1ray 等。
以上方法不能完全根除被墙的风险,俗称治标不治本,就敏感时期,应该低调、少上外网,需要从根本上解决问题还是更换服务器为妥。
附录
跳板机教程:
既然要通过国内服务器转发流量,首先必须要一台国内服务器。国内服务器的选择有很多,建议使用 NAT VPS,年付几十到一两百,NAT VPS 中转请参考:使用 NAT VPS 中转加速。也可以用阿里云、腾讯云这些大厂商的服务器,质量和服务都比较有保障。由于服务器仅做流量转发用,买最低配置的就可以,1 核 256m 内存足够,看视频的话带宽买大点,也可以选择流量计费模式(不适合视频党)。
本文以 CentOS 7/8 系统为例介绍国内服务器中转配置,分别介绍 firewalld 流量转发和 nginx 流量转发两种方式。
使用 Nginx 流量转发
1.安装 Nginx
2.配置 nginx
1 | user nginx; |
3.检查错误
nginx -t
如显示
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
则配置正常,如果有问题,请按照提示更改,这里提两个常见问题。
1.查看防火墙有没有放行 nginx 监听的端口firewall-cmd --state
输出 running 表示防火墙正在运行,如果显示没有此命令则为防火墙未安装。可以使用以下命令将端口放行。
1 | firewall-cmd --permanent --add-port=nginx中配置的端口号/tcp |
如果服务器厂商上层还有安全组/防火墙,诸如阿里云/腾讯云等购买的 vps,请记得也要到控制台放行相应端口。
Nginx 效率不如 firewalld/iptables,但是配置更灵活,使用上更便利。
使用防火墙(内核)方式流量转发
1.确认是否安装防火墙,检测与安装如下
1 | firewall-cmd --state |
2.配置转发
1 | echo 'net.ipv4.ip_forward = 1' >> /etc/sysctl.conf |
以上就配置结束了。
如果中转 trojan 流量,需要在客户端配置文件中的两个 verify 选项设置为 false