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

2024-04-13 16:32

本文主要是介绍内网服务器通过另一台能访问公网的服务器实现访问公网, 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经过本机

这篇关于内网服务器通过另一台能访问公网的服务器实现访问公网, iptables NAT的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/900642

相关文章

C++对象布局及多态实现探索之内存布局(整理的很多链接)

本文通过观察对象的内存布局,跟踪函数调用的汇编代码。分析了C++对象内存的布局情况,虚函数的执行方式,以及虚继承,等等 文章链接:http://dev.yesky.com/254/2191254.shtml      论C/C++函数间动态内存的传递 (2005-07-30)   当你涉及到C/C++的核心编程的时候,你会无止境地与内存管理打交道。 文章链接:http://dev.yesky

2024.6.24 IDEA中文乱码问题(服务器 控制台 TOMcat)实测已解决

1.问题产生原因: 1.文件编码不一致:如果文件的编码方式与IDEA设置的编码方式不一致,就会产生乱码。确保文件和IDEA使用相同的编码,通常是UTF-8。2.IDEA设置问题:检查IDEA的全局编码设置和项目编码设置是否正确。3.终端或控制台编码问题:如果你在终端或控制台看到乱码,可能是终端的编码设置问题。确保终端使用的是支持你的文件的编码方式。 2.解决方案: 1.File -> S

通过SSH隧道实现通过远程服务器上外网

搭建隧道 autossh -M 0 -f -D 1080 -C -N user1@remotehost##验证隧道是否生效,查看1080端口是否启动netstat -tuln | grep 1080## 测试ssh 隧道是否生效curl -x socks5h://127.0.0.1:1080 -I http://www.github.com 将autossh 设置为服务,隧道开机启动

【服务器运维】MySQL数据存储至数据盘

查看磁盘及分区 [root@MySQL tmp]# fdisk -lDisk /dev/sda: 21.5 GB, 21474836480 bytes255 heads, 63 sectors/track, 2610 cylindersUnits = cylinders of 16065 * 512 = 8225280 bytesSector size (logical/physical)

【服务器运维】CentOS6 minimal 离线安装MySQL5.7

1.准备安装包(版本因人而异,所以下面的命令中版本省略,实际操作中用Tab自动补全就好了) cloog-ppl-0.15.7-1.2.el6.x86_64.rpmcpp-4.4.7-23.el6.x86_64.rpmgcc-4.4.7-23.el6.x86_64.rpmgcc-c++-4.4.7-23.el6.x86_64.rpmglibc-2.12-1.212.el6.x86_64.r

【服务器运维】CentOS7 minimal 离线安装 gcc perl vmware-tools

0. 本机在有网的情况下,下载CentOS镜像 https://www.centos.org/download/ 1. 取出rpm 有的情况可能不需要net-tools,但是如果出现跟ifconfig相关的错误,就把它安装上。另外如果不想升级内核版本的话,就找对应内核版本的rpm版本安装 perl-Time-Local-1.2300-2.el7.noarch.rpmperl-Tim

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测

时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测 目录 时序预测 | MATLAB实现LSTM时间序列未来多步预测-递归预测基本介绍程序设计参考资料 基本介绍 MATLAB实现LSTM时间序列未来多步预测-递归预测。LSTM是一种含有LSTM区块(blocks)或其他的一种类神经网络,文献或其他资料中LSTM区块可能被描述成智能网络单元,因为

vue项目集成CanvasEditor实现Word在线编辑器

CanvasEditor实现Word在线编辑器 官网文档:https://hufe.club/canvas-editor-docs/guide/schema.html 源码地址:https://github.com/Hufe921/canvas-editor 前提声明: 由于CanvasEditor目前不支持vue、react 等框架开箱即用版,所以需要我们去Git下载源码,拿到其中两个主

android一键分享功能部分实现

为什么叫做部分实现呢,其实是我只实现一部分的分享。如新浪微博,那还有没去实现的是微信分享。还有一部分奇怪的问题:我QQ分享跟QQ空间的分享功能,我都没配置key那些都是原本集成就有的key也可以实现分享,谁清楚的麻烦详解下。 实现分享功能我们可以去www.mob.com这个网站集成。免费的,而且还有短信验证功能。等这分享研究完后就研究下短信验证功能。 开始实现步骤(新浪分享,以下是本人自己实现

基于Springboot + vue 的抗疫物质管理系统的设计与实现

目录 📚 前言 📑摘要 📑系统流程 📚 系统架构设计 📚 数据库设计 📚 系统功能的具体实现    💬 系统登录注册 系统登录 登录界面   用户添加  💬 抗疫列表展示模块     区域信息管理 添加物资详情 抗疫物资列表展示 抗疫物资申请 抗疫物资审核 ✒️ 源码实现 💖 源码获取 😁 联系方式 📚 前言 📑博客主页: