如何实现国外域名调转到国内已备案ip
最近19大,我们的九护服务器惨遭禁止访问封锁。把人累惨了,每天封锁我们的ip,开始几天可以通过不断的更换新的ip,这样用户访问中断半小时左右,就恢复。
后来GWF越来越牛了,用户间歇性的无法访问了,我们也彻底的投降了,只好从亚马逊迁回到阿里云,备案吧。
问题来了,老的域名(www.guardever.com)不能动还得提供访问,新的域名(www.jh.tt)备案了,现在怎么让www.guardever.com 跳转到国内的 www.jh.tt 呢?
有几个思路:
1. 直接把 www.guardever.com 指向 国内的ip
2. 域名跳转域名,用域名的CNAME记录
3. 用iptables 进行端跳转,从 guardever.com的80端口跳转到 jh.tt的80端口
思路确定了,开始执行:
1. 直接把 www.guardever.com 指向 国内的ip
访问马上就提示没备案,见下图,看来是没戏
2. 域名跳转域名,用域名的CNAME记录
在dnspod.cn 设置好解析,跟上面第一种情况一样,马上就提示没备案
3. 用iptables 进行端跳转,从 guardever.com的80端口跳转到 jh.tt的80端口
网上有教程,用SNAT和DNAT 但我没设置成功,我估计是NAT只支持局域网的,不支持公网跳转的。
4. 没路了,竟然ip跳转不行,我想到了haproxy的集群跳转,让haproxy在 guardever.com上绑定80端口,然后agent设置跳转到 jh.tt:80
偶尔成功,占多数时候,还是提示要备案,看来也是没戏了。估计阿里是判断了 http的reference,看是从哪个域名跳过来的。
洗洗睡,晚上想到 阿里也许只是拦截了80端口,跳转到别的端口估计是可以。
5. 早上起来,继续跳转到别的端口,让jh.tt的网站服务绑定在8081端口,然后用iptables把jh.tt的80端口跳转到8081端口,让jh.tt正常运行。
然后让haproxy跳转到8081,测试了下出现了 网站主页,设置成功了。
=============================================================================================================
附haproxy的设置:
frontend http_proxy
bind *:80
mode tcp
rate-limit sessions 20000
option tcpka
default_backend http_agent
backend http_agent
mode tcp
log global
option tcpka
option srvtcpka
option httpchk GET /h HTTP/1.0\r\nUser-agent:\ LB-Check\ TCP
http-check expect rstatus (2|3|4)[0-9][0-9]
balance source
server http_china1 120.78.143.149:8081 check port 80 check inter 60s rise 2 fall 3 maxconn 25000 weight 9