公司最近为了节约成本,将原来部署测试环境的阿里云的服务器停止续费,从腾讯云新购了四台服务器。
为了尽可能的节约成本,四台服务器,只购买了一个公网 IP,其他服务器计划通过内网桥接之类的联网,实际操作后,发现事情没有这么简单,折腾了几天才解决,现在记录一下。
一开始搜了很多教程,都是 window 宿主机安装 VM 虚拟机进行桥接的教程,最后找到一个内网服务器通过代理使用有外网的服务器下载公网数据,但是这样不能 ping 通外网,好像速度也有限制,代理的教程链接如下:
内网服务器如何设置代理访问外网
最后感觉一些 docker 相关的东西还是联网困难,还是需要一个完美的联网方式,又搜了很久,搜到这篇利用建立虚拟网关进行联网的教程,测试一切联网正常,也可以在没有公网的服务器里 ping 通 baidu.com ,教程链接如下:
无公网服务器通过另一台有公网服务器联网
这里也搬运一下教程,防止链接失效
有公网服务器操作:
1、安装
yum install -y pptpd
2、修改配置
vim /etc/pptpd.conf
在编辑的文件里最下面添加以下代码(原文:代码意思是通过虚拟网关实现,localip即本地的虚拟网关,remoteip是开放的网关ip,类似于路由器一样,分配给链接的服务器。):
localip 192.168.0.1remoteip 192.168.0.234-238,192.168.0.245
3、增加配置
打开 /etc/ppp/chap-secrets 配置文件,执行以下命令。
//用户名 pptpd 密码 *root pptpd 123456 *
4、启动pptpd服务
systemctl start pptpd
若想添加自启则执行以下命令,关闭则将on改为off
chkconfig pptpd on
5、开启转发
同时还需要开启转发,及iptables功能。
echo 1 > /proc/sys/net/ipv4/ip_forward
以上命令为临时开启,重启消失。如想永久开启,则执行以下命令编辑,将 net.ipv4.ip_forward=0
改为 net.ipv4.ip_forward=1
即可。
vim /etc/sysctl.conf
6、开启iptables nat功能
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE
若想自动生效,则安装iptables-services,之后开启功能,然后保存配置。并配置自启。
yum install iptables-servicesiptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADEservice iptables savesystemctl enable iptables.service
内网服务器操作
1、安装PPTP和PPTP-SETUP
安装PPTP和PPTP-SETUP,在centos无法安装pptp-setup,需要自行配置拨号文件(详见下面)。
yum install -y pptp pptp-setup
2、配置拨号文件
首先要知道 公网服务器的内网ip ,替换下面的 xxx.xxx.xxx.xxx 。这里创建了一个名为test的拨号文件
pptpsetup --create test --server xxx.xxx.xxx.xxx --username root --password 123456 --encrypt
其代表含义为:
pptpsetup --create 配置文件的名称 --server 有公网 IP 的云服务器的内网 IP --username 连接 PPTP 的用户名 --password 连接 PPTP 的密码 --encrypt
3、进行拨号
pppd call test
4、设置路由
route add -net 0.0.0.0 dev ppp0
Ps. 3,4步骤开机自动生效
若想3,4步骤开机自动生效。则在cd /etc/rc.d/init.d并创建个.sh文件,例如叫 a.sh,内容如下:
#!/bin/bash#chkconfig:2345 65 65 //pppd call testsleep 5sroute add -net 0.0.0.0 dev ppp0
之后执行以下代码,即可实现自启。
chkconfig --add a.shchkconfig a.sh on
5、测试网络
最后ping www.baidu.com,若能够ping通,则证明联网成功。
最后
经实测、全程按照教程设置,三台内网服务器都能通过有外网的服务器 ping 通 baidu.com 了,但是大量下载时,会出现拨号断开的情况,需要重复操作上面内网服务器的 3、4 步骤操作恢复拨号,网上能搜到拨号断开自动重新拨号的教程,没测试,可以自己搜搜测试一下。