首页 > 编程知识 正文

公网ip访问内网服务器如何实现,两台服务器共用一个公网ip

时间:2023-05-06 16:00:30 阅读:233490 作者:4017

一、服务器A,能访问外网

网卡eth0, 配置内网IP
vim /etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=noneDEFROUTE=yesIPV4_FAILURE_FATAL=noNAME="eth0"DEVICE="eth0"ONBOOT="yes"IPADDR=172.16.10.52 # 作为其它内网服务器的网关NETMASK=255.255.255.0GATEWAY=10.22.2.123 # 此处设置为外网IP, 如果还需要配置其他内网网卡,其网关都应该设置为外网IPDNS1=114.114.114.114ZONE=public

网关(GATEWAY)要设置为外网IP, 其IP地址作为其他内网服务器的网关。

网卡eth1配置能连外网的IP

TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=noneDEFROUTE=yesIPV4_FAILURE_FATAL=noNAME="eth1"DEVICE="eth1"ONBOOT="yes"IPADDR=10.22.2.123 # 外网IPNETMASK=255.255.255.0GATEWAY=10.22.2.254 # 外网网关DNS1=114.114.114.114ZONE=public 二、服务器B,只有内网IP,通过服务器A访问外网 eth0TYPE=EthernetPROXY_METHOD=noneBROWSER_ONLY=noBOOTPROTO=noneDEFROUTE=yesIPV4_FAILURE_FATAL=noNAME="eth0"DEVICE="eth0"ONBOOT="yes"IPADDR=172.16.10.162NETMASK=255.255.255.0GATEWAY=172.16.10.52 # 服务器A的内网IP地址DNS1=114.114.114.114DNS2=8.8.8.8 网关(GATEWAY)为服务器A的IP地址。
配置网卡之后需执行service network restart生效。 三、配置ipv4转发 修改服务器A配置文件 /etc/sysctl.conf,修改参数为1
net.ipv4.ip_forward = 1生效
sysctl -p 四、配置服务器A使服务器B及其他内网服务器能访问外网

使用firewalld
打开IP地址伪装,firewall-cmd --permanent --zone=public --add-masquerade

或者配置服务器A的iptables规则 命令
iptables -t nat -A POSTROUTING -s 172.16.10.0/255.255.255.0 -j SNAT --to-source 10.22.2.123
172.16.10.0/255.255.255.0指整个172.16.10.0网段的IP都生效,也可单独指定某台服务器的IP,如:172.16.10.162保存规则
上面的命令即时生效,若需要下次启动也可用,需保存规则:
service iptables save
如果有提示:Unit iptables.service could not be found. 则需安装iptables-services 五、DNS解析失败的问题

以上配置之后,通过IP能访问外网,但是使用域名则不行,即使已经配置了dns解析服务器。
还需要在服务器A执行:
iptables -I FORWARD 1 -s 172.16.10.0/24 -j ACCEPT #允许所有源地在172.16.10.0/24的ip经过本机

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。