技术解析
一般服务器内请求外网的IP,都是用的网卡的主IP。但是我想要用另外一台服务器做代理中转来请求外网。这个怎么实现?我看网上有通过iptables转发流量的,但是不好用。
为什么要这样做呢,因为我是做虚拟主机的,而且通过CDN隐藏了源站IP,很多人的网站程序有发邮件或者请求外网的功能导致源服务器IP泄露。所以我想从系统层面把所有请求外网的都通过另外一台服务器代理。
ss就行了,我今天刚刚试了,搞一个 ss服务器,然后客户端所有的ip都是从服务器那发出去的
http/socks代理 + iptables做透明代理。我现在就是通过类似方法实现内地服务器接入google登录的。
在两台服务器之间组建tinc vpn,采用交换机模式(mode=switch),然后如下修改路由:
ip route add 另一台服务器的外网ip via 默认网关 dev 外网网卡 ip route change default via 另一台服务器的tinc的ip tinc的网卡
就是除了访问另外一台服务器用真实ip,其他都走tinc vpn。
另一台服务器需要开启net.ipv4.ip_forward=1
,iptables也要添加MASQUERADE
规则。
你也可以使用任意其他vpn,只要具有虚拟网卡,可以路由即可。