我有两台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?
centos7怎么通过firewall防火墙和nat配置实现外网主机访问内网?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- IT论之程序员 2023-07-10 16:08关注
对于centos7实现内网pc1被外网访问,可以通过在pc2上进行NAT配置来实现。具体步骤如下:
- 在pc2上启用NAT功能:
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
其中eth1是pc2连接外网的接口。 - 在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
- 在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实现内外网互访的简单方法。也可以考虑使用端口转发等其他技术。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用 - 在pc2上启用NAT功能:
悬赏问题
- ¥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扫码,华为手机没反应。可提高悬赏