桃纭309 2023-07-08 15:52 采纳率: 25%
浏览 21
已结题

centos7怎么通过firewall防火墙和nat配置实现外网主机访问内网?

我有两台centos7虚拟机。一台pc1里面有nginx,地址是10.10.10.2/24,网关10.10.10.1(其实就是pc上面的一个地址做网关了)。pc2双网卡,一张地址是10.10.10.1/24,另外一张连接外网地址192.168.11.X/24连接着外网,现在想让外网的主机可以访问到pc1上面的网页怎么办,只可以用pc1上网访问外网。在外面怎么也ping不到pc1。救命(这个刚刚接触,真不明白可以详细一点吗,用的是firewall防火墙和nat配置),怎么才可以实现外网访问内网的pc1?

img

  • 写回答

1条回答 默认 最新

  • IT论之程序员 2023-07-10 16:08
    关注

    对于centos7实现内网pc1被外网访问,可以通过在pc2上进行NAT配置来实现。具体步骤如下:

    1. 在pc2上启用NAT功能:

      iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE

      其中eth1是pc2连接外网的接口。
    2. 在pc2上添加SNAT规则,将访问pc1的流量做源地址转换:

    iptables -t nat -A PREROUTING -d 192.168.11.X -p tcp --dport 80 -j DNAT --to-destination 10.10.10.2:80

    其中192.168.11.X是pc2的外网IP,10.10.10.2是pc1的内网IP。这个规则是将访问80端口的流量转发到pc1的80端口。
    3. 在pc2上添加默认路由,将默认路由指向外网网关:

    route add default gw 192.168.11.1

    1. 在pc1上添加默认路由,指向pc2:

      route add default gw 10.10.10.1

      这样就实现了从外网访问pc1上的WEB服务器。外网用户访问pc2的外网IP的80端口,流量会被转发到pc1的WEB服务器上。
      你还需要确保pc2上启用了IP转发,编辑/etc/sysctl.conf,设置net.ipv4.ip_forward为1。
      这个是通过NAT实现内外网互访的简单方法。也可以考虑使用端口转发等其他技术。
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 7月21日
  • 已采纳回答 7月13日
  • 创建了问题 7月8日

悬赏问题

  • ¥15 SQLite 出现“Database is locked” 如何解决?
  • ¥15 已经加了学校的隶属邮箱了,为什么还是进不去github education?😭
  • ¥15 求会做聚类,TCN的朋友有偿线上指导。以下是目前遇到的问题
  • ¥100 无网格伽辽金方法研究裂纹扩展的程序
  • ¥15 错误于library(org.Hs.eg.db): 不存在叫‘org.Hs.eg.db’这个名称的程序包,如何解决?
  • ¥60 求一个图片处理程序,要求将图像大小跟现实生活中的大小按比例联系起来的
  • ¥50 求一位精通京东相关开发的专家
  • ¥100 求懂行的大ge给小di解答下!
  • ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
  • ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏