内网服务器通过另一台能访问公网的服务器实现访问公网, iptables NAT

一、服务器A,能访问公网
  • 网卡eth0, 配置内网IP
    vim /etc/sysconfig/network-scripts/ifcfg-eth0

    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=none
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    NAME="eth0"
    DEVICE="eth0"
    ONBOOT="yes"
    IPADDR=172.16.10.52 # 作为其它内网服务器的网关
    NETMASK=255.255.255.0
    GATEWAY=10.22.2.123 # 此处设置为能访问公网的IP, 如果还需要配置其他内网网卡,其网关都应该设置为此IP
    DNS1=114.114.114.114
    ZONE=public
    

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

  • 网卡eth1配置能连公网的IP

    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=none
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    NAME="eth1"
    DEVICE="eth1"
    ONBOOT="yes"
    IPADDR=10.22.2.123 # 能访问公网的IP
    NETMASK=255.255.255.0
    GATEWAY=10.22.2.254 # 公网网关
    DNS1=114.114.114.114
    ZONE=public
    
二、服务器B,只有内网IP,通过服务器A访问公网
  • eth0
    TYPE=Ethernet
    PROXY_METHOD=none
    BROWSER_ONLY=no
    BOOTPROTO=none
    DEFROUTE=yes
    IPV4_FAILURE_FATAL=no
    NAME="eth0"
    DEVICE="eth0"
    ONBOOT="yes"
    IPADDR=172.16.10.162
    NETMASK=255.255.255.0
    GATEWAY=172.16.10.52 # 服务器A的内网IP地址
    DNS1=114.114.114.114
    DNS2=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经过本机

  • 9
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值