写这个东西是因为上次看到了zhyaof的帖子http://www.hostloc.com/thread-322252-1-1.html, 里面用gre隧道做的IP映射。不知为何原因,我自己设置的时候GRE隧道一直失败,IPIP就没问题。于是记录下步骤。全文https://qing.su/article/123.html

测试的服务器环境如下:OVH VPS, Canada BHS-1, Debian 7 64bit; KS-3C Server, Canada BHS-1, Debian 7 64bit. 服务器未安装锐速/BBR, 若服务器上安装有类似的加速软件请关闭后再继续。

1, 添加IP地址

购买额外IP地址后,须逐一在OVH VPS上添加IP地址。

编辑文件/etc/network/interfaces, 如果默认IP对应的网卡是eth0, 则新加一块网卡eth0:0, 添加如下语段:
auto eth0:0
iface eth0:0 inet static
address VPS_EXTRA_IP
netmask 255.255.255.255
复制代码

VPS_EXTRA_IP替换为需要映射到KS服务器上的IP地址,下同。若有多个IP则逐一添加。保存后执行ifup eth0:0激活新IP. 完成后请从KS服务器上ping一下这个待映射的IP地址看看能不能ping通。

2, 开启转发

编辑OVH VPS的/etc/sysctl.conf文件,删除net.ipv4.ip_forward=1这一行行首的注释符。 保存退出后执行sysctl -p使之生效。

3, 设置IPIP隧道

在OVH VPS上依次执行:
iptunnel add shc mode ipip local VPS_EXTRA_IP remote KIMSUFI_IP ttl 255
ip addr add 192.168.100.1/30 dev shc
ip link set shc up
复制代码

其中KIMSUFI_IP替换为KS服务器的地址。

接着在KS服务器上依次执行:
iptunnel add shc mode ipip local KIMSUFI_IP remote VPS_EXTRA_IP ttl 255
ip addr add 192.168.100.2/30 dev shc
ip link set shc up
复制代码

  1. 设置路由表和映射

在OVH VPS上依次执行:
iptables -t nat -A POSTROUTING -s 192.168.100.0/30 -j SNAT --to-source VPS_EXTRA_IP
iptables -t nat -A PREROUTING -d VPS_EXTRA_IP -j DNAT --to-destination 192.168.100.2
iptables -A FORWARD -d 192.168.100.2 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
复制代码

在KIMSUFI服务器上依次执行:
echo '100 SHC' >> /etc/iproute2/rt_tables
ip rule add from 192.168.100.0/30 table SHC
ip route add default via 192.168.100.1 table SHC
复制代码

至此,IP映射设置完毕,可以愉快地在KS服务器上多IP访问了。

映射好后如果做站的话无需额外设置了。开小鸡的额外注意事项可以参考下zhyaof的帖子。