Linux服务器建立IP隧道,变更访问出口

工作中有时需要用到其他城市的IP地址,此时我们可以选择用代理的方式实现访问出口为其他城市出口IP。

部署前准备: 保证两台服务器之间能相互ping通

A服务器(上海):内网IP:172.16.1.12

B服务器(广州):内网IP:10.13.101.83

一、配置IP隧道

1、上海服务器上配置(其中a2b只是一个接口名称,当然也可以换成其他的)

# 其中 192.168.2.1 只是一个虚拟IP,与实验的两个网段IP不一致即可
# ip tunnel add a2b mode ipip remote 10.13.101.83 local 172.16.1.12
# ifconfig a2b 192.168.2.1 netmask 255.255.255.0
# iptunnel show
tunl0: unknown/ip  remote any  local any  ttl inherit  nopmtudisc
a2b: ip/ip  remote 10.13.101.83  local 172.16.1.12  ttl inherit

2、广州服务器上配置

# ip tunnel add a2b mode ipip remote 172.16.1.12 local 10.13.101.83
# ifconfig a2b 192.168.2.2 netmask 255.255.255.0
# iptunnel show
tunl0: unknown/ip  remote any  local any  ttl inherit  nopmtudisc
a2b: ip/ip  remote 172.16.1.12  local 10.13.101.83  ttl inherit

3、隧道效果测试,在广州服务器上操作

# ip addr|grep 192.168.2.2
    inet 192.168.2.2/24 scope global a2b
# ping 192.168.2.1
PING 192.168.2.1 (192.168.2.1) 56(84) bytes of data.
64 bytes from 192.168.2.1: icmp_seq=1 ttl=64 time=8.35 ms
64 bytes from 192.168.2.1: icmp_seq=2 ttl=64 time=7.91 ms

二、上海服务器配置路由规则

说明:上海服务器配置路由规则是为了上海服务器访问内地网络的话就走隧道发给广州服务器

1、内地网络IP段文件下载

国内IProute.txt-网络安全文档类资源-CSDN下载

2、下载文件后修改文件使其符合当前规则并在香港服务器上执行,添加路由

# -net 后面的IP端代表想通过内地服务器访问的IP端,当前我们是把所有内地网段都添加了
# route add -net 1.12.0.0/14 gw 192.168.2.2
# route add -net 1.24.0.0/13 gw 192.168.2.2
......

三、服务器配置NAT

1、广州服务器上配置NAT

# sysctl -w net.ipv4.ip_forward=1
# sed -i '/net.ipv4.ip_forward/ s/0/1/'  /etc/sysctl.conf

# 把上面下载的内网IP段全部添加上
# iptables -t nat -A POSTROUTING -s 192.168.2.1 -d 1.0.1.0/24 -j MASQUERADE
# iptables -t nat -A POSTROUTING -s 192.168.2.1 -d 1.0.2.0/23 -j MASQUERADE
# iptables -t nat -A POSTROUTING -s 192.168.2.1 -d 1.0.8.0/21 -j MASQUERADE
......

2、上海服务器配置NAT规则

# sysctl -w net.ipv4.ip_forward=1
# sed -i '/net.ipv4.ip_forward/ s/0/1/'  /etc/sysctl.conf

# 把上面下载的内网IP段全部添加上
# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -d 1.0.1.0/24 -j MASQUERADE
# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -d 1.0.2.0/23 -j MASQUERADE
# iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -d 1.0.8.0/21 -j MASQUERADE

# 10.8.0.0/24 是到时候VPN客户端获取到的IP,这个网段比较固定,所以我先写上,后期发现不对的话,修改即可。

四、上海OpenVPN服务部署

说明:在上海部署VPN是为了上海用户可以通过VPN客户端连接上海服务器

1、安装部署

# wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

# 根据提示,一直点击回车。直到提示输入Name [client]: vpncy   (这个名称比较随意)

2、安装好后会在/root 目录下生成一个vpncy.ovpn文件,该文件为客户端导入配置文件

# ls /root/
vpncy.ovpn

3、客户端下载地址,下载后并安装

https://openvpn.net/community-downloads/

五、客户端使用测试

1、打开 openvpn 客户端,导入上面 root 目录下的 vpncy.ovpn 配置文件,然后连接

2、连接成功后,openvpn客户端会变成绿色,如图

3、访问百度查看IP地址,当前IP已经是广州云机器的IP了

六、问题排查

1、如果我们本地连接不上上海服务器,可能是我们当前网段添加进了上海主机的路由规则中,去掉我们当前公网IP网段规则就好了。
2、如果上海测试发现访问内地访问没有走广州机器出口,那么可能是访问的网站IP并不在路由规则中,添加路由规则以及广州云主机的NAT规则即可。
3、如果是其他的问题,可以通过抓包解决。
上海抓隧道包:

# tcpdump -i a2b

广州抓访问出口IP地址包:

# tcpdump -i eth0 host 150.109.64.105

总结:

      本次实验相当于连接到上海机器VPN的用户出口网络以广州机器网络出口。实际情况还得看业务场景,是否能满足需求。

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值