路由机

eth0:114.114.114.114(公网ip)  eth1:192.168.1.1(内网ip)

pc1

eth0:192.168.1.2(内网ip)    eth1(拨号ip)

pc2

eth0:192.168.1.3(内网ip)    eth1(拨号ip)

1.配置路由机网卡信息

vim /etc/sysconfig/network-scripts/ifcfg-eth1

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth1
UUID=85290fec-9166-4a02-90c3-711bf55d1ae2
DEVICE=eth1
ONBOOT=yes
HWADDR=00:0c:29:27:64:b8
IPADDR=192.168.1.1

此网卡只配置IP,不配置网关

2.配置pc1网卡

vim /etc/sysconfig/network-scripts/ifcfg-eth0

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eth0
UUID=d79660a0-4225-4f0e-96b1-4d61fc05a17c
DEVICE=eth0
ONBOOT=yes
HWADDR=00:0c:29:97:6a:4b
IPADDR=192.168.1.2
NETMASK=255.255.255.0
GATEWAY=192.168.1.1

pc2配置与pc1类似,保证2台pc机与网关能互相ping通

此时pc1 pc2还不能访问外网,需要路由机做iptables规则

1.查看机器的转发功能时候打开

cat /proc/sys/net/ipv4/ip_forward

若返回1则表示已经打开

返回0则:

echo "1" > /proc/sys/net/ipv4/ip_forward

此规则及时生效,但重启后就失效了,需要在配置文件里添加

vim /etc/sysctl.conf

net.ipv4.ip_forward = 1
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.default.accept_source_route = 0
kernel.sysrq = 0
kernel.core_uses_pid = 1
net.ipv4.tcp_syncookies = 1
kernel.msgmnb = 65536
#每个消息队列的最大字节限制
kernel.msgmax = 65536
#每个消息的最大size
kernel.shmmax = 68719476736
#内核参数定义单个共享内存段的最大值
kernel.shmall = 4294967296
#控制共享内存页数

iptables做nat转发规则

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT --to 114.114.114.114

将192.168.1.0网段转发至路由机的公网IP(静态)

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

将所有网段转发至路由机公网ip(动态)
现在2台pc机就能访问外网了,如果不能访问则检查下dns配置

内部端口映射

iptables -t nat -A PREROUTING -d 114.114.114.114/32 -p tcp -m tcp --dport 26688 -j DNAT --to-destination 192.168.1.2:22

把192.168.1.2的22端口映射到外部26688端口
找台外网机器访问下114.114.114.114的26688端口,就可以直接进入pc1

删除规则:把-A改为-D

iptables -t nat -D PREROUTING -d 114.114.114.114/32 -p tcp -m tcp --dport 26688 -j DNAT --to-destination 192.168.1.2:22

映射失效

最后保存下iptables配置

/usr/sbin/iptables-save

但是当pc1拨号时也会导致端口映射失效,类似双网卡默认对外路由的问题,通过路由机访问的IP会默认走拨号端口,需要做下ip伪装,将通过访问内网的公网地址伪装成网关地址从而实现内网通信

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

转载于:https://www.cnblogs.com/wxq008/p/6812839.html

linux实现nat转发和内部端口映射相关推荐

  1. 源NAT,目的NAT和PAT以及端口映射的区别?

    源NAT,目的NAT和PAT以及端口映射的区别? 参考链接: 1.https://blog.51cto.com/hzcto/2418606 2.[转载]网络地址转换(NAT)和端口映射 https:/ ...

  2. 使用virtualbox nat方式中的端口映射使用ssh服务

    2019独角兽企业重金招聘Python工程师标准>>> Guest系统端口映射 在VirtualBox NAT网络模式下面,Guest系统对Host系统和局域网内其他的机器都是不可见 ...

  3. linux centos7开启IP转发、路由转发解决docker 端口映射 及外部无法访问问题

    1.临时开启,(写入内存,在内存中开启)echo "1" > /proc/sys/net/ipv4/ip_forward2.永久开启,(写入内核)在 vim /etc/sys ...

  4. 操作篇 了解学习NAT实验(关于静态NAT、动态NAT、EasyIP、端口映射的配置方法))

    文章目录 前言 NAT工作原理 NAT分类 一:实验环境 1.1:实验原理 1.2实验目的 1.3华为NAT实验拓扑图 二:实验过程 配置SW1 配置AR1: 配置AR2: 前言 随着Internet ...

  5. 【有图有真相】静态NAT、动态NAT、PAT、端口映射的详细配置过程

    实验要求:使用宿主机利用NAT地址转换技术访问虚拟机的Web80端口.全是***实弹的操作步骤. 实验前提:开启server 2008虚拟机并且搭建一个简单web服务.打开GNS3连接拓扑图的线路,一 ...

  6. linux修改容器内的mysql端口映射_修改docker容器端口映射的方法

    大家都知道docker run可以指定端口映射,但是容器一旦生成,就没有一个命令可以直接修改.通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射. 有没有办法不保存镜像而直接修改 ...

  7. linux一个vlan配置多个端口映射,Linux 设置 多ip,多vlan

    引:在Linux下有时候需要给一个网卡绑定多个IP,本文介绍在Redhat系列(redhat,Fedora Core,Centos)中的实现方法和一种在Gentoo等其他Linux中普遍适用的方法. ...

  8. linux下修改docker容器RabbitMQ端口映射(修改RabbitMQ默认端口)

    1.xshell 执行以下命令获取docker容器ID docker ps -a 2.修改 /var/lib/docker/containers/{容器 ID+ 一些字符串}/hostconfig.j ...

  9. NAT外网访问内网方法,内网端口映射外网ip

    由于公网IP地址有限,不少ISP都采用多个内网用户通过代理和网关路由共用一个公网IP上INTERNET的方法,这样就限制了这些用户在自己计算机上架设个人网站,要实现在这些用户端架设网站,最关键的一点是 ...

最新文章

  1. 《任正非:我若贪生怕死,何来让你们英勇奋斗》
  2. 无密码进去mysql_技术分享 | 安全地无密码登录 MySQL
  3. linux C编程之makefile
  4. 前端求职-htmlcss
  5. gsoap使用心得! (win32)
  6. 云原生全景图之六 | 托管 Kubernetes 和 PaaS 解决什么问题
  7. android权威指南十三章,《Android编程权威指南》第30~32以及第34章读书笔记
  8. nmap扫描ipv6端口_web渗透测试系列 之 扫描(3)
  9. 远程580解锁bl工具_一年让你多挣4万的工具丨又增VIVO新款保资料解锁!
  10. 出现在嵌入式DSP上可用于实现各种编解码器
  11. 智能优化算法:基于Powell优化的鸽群优化算法
  12. Flex在线拍照功能
  13. 解决android SDK不能更新,appium测试混合app无法返回webview问题
  14. 计算机id dns知识,智能DNS解析知识集锦
  15. C++面试宝典 知识点集锦
  16. A320M HDV 4.0主板用CH341A手动刷BIOS支持5600g
  17. pycharm的安装配置及思维导图
  18. 扫地机器人的构造及核心技术详解
  19. Springboot部署Nginx,配合Supervisor管理Springboot进程
  20. 2021蓝桥杯省赛b题解

热门文章

  1. TC配置文件WCMD.INI详解,只能在ini重修改的配置
  2. android各种权限及说明
  3. Http环境下的保持连接方式
  4. 在PHP语言中使用JSON
  5. XML与DataSet的相互转换类
  6. 只要可能,就缓存数据和页输出
  7. 在C#中应用哈希表(Hashtable)
  8. 设计模式之外观模式(Facade)摘录
  9. Windows 64位机上C/C++代码静态检查工具Logiscope RuleChecker的安装和使用
  10. 华为鸿蒙手机官网价格表,曝下半年华为将推出两款鸿蒙手机:国内独享,价格良心...