linux实现nat转发和内部端口映射
路由机
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转发和内部端口映射相关推荐
- 源NAT,目的NAT和PAT以及端口映射的区别?
源NAT,目的NAT和PAT以及端口映射的区别? 参考链接: 1.https://blog.51cto.com/hzcto/2418606 2.[转载]网络地址转换(NAT)和端口映射 https:/ ...
- 使用virtualbox nat方式中的端口映射使用ssh服务
2019独角兽企业重金招聘Python工程师标准>>> Guest系统端口映射 在VirtualBox NAT网络模式下面,Guest系统对Host系统和局域网内其他的机器都是不可见 ...
- linux centos7开启IP转发、路由转发解决docker 端口映射 及外部无法访问问题
1.临时开启,(写入内存,在内存中开启)echo "1" > /proc/sys/net/ipv4/ip_forward2.永久开启,(写入内核)在 vim /etc/sys ...
- 操作篇 了解学习NAT实验(关于静态NAT、动态NAT、EasyIP、端口映射的配置方法))
文章目录 前言 NAT工作原理 NAT分类 一:实验环境 1.1:实验原理 1.2实验目的 1.3华为NAT实验拓扑图 二:实验过程 配置SW1 配置AR1: 配置AR2: 前言 随着Internet ...
- 【有图有真相】静态NAT、动态NAT、PAT、端口映射的详细配置过程
实验要求:使用宿主机利用NAT地址转换技术访问虚拟机的Web80端口.全是***实弹的操作步骤. 实验前提:开启server 2008虚拟机并且搭建一个简单web服务.打开GNS3连接拓扑图的线路,一 ...
- linux修改容器内的mysql端口映射_修改docker容器端口映射的方法
大家都知道docker run可以指定端口映射,但是容器一旦生成,就没有一个命令可以直接修改.通常间接的办法是,保存镜像,再创建一个新的容器,在创建时指定新的端口映射. 有没有办法不保存镜像而直接修改 ...
- linux一个vlan配置多个端口映射,Linux 设置 多ip,多vlan
引:在Linux下有时候需要给一个网卡绑定多个IP,本文介绍在Redhat系列(redhat,Fedora Core,Centos)中的实现方法和一种在Gentoo等其他Linux中普遍适用的方法. ...
- linux下修改docker容器RabbitMQ端口映射(修改RabbitMQ默认端口)
1.xshell 执行以下命令获取docker容器ID docker ps -a 2.修改 /var/lib/docker/containers/{容器 ID+ 一些字符串}/hostconfig.j ...
- NAT外网访问内网方法,内网端口映射外网ip
由于公网IP地址有限,不少ISP都采用多个内网用户通过代理和网关路由共用一个公网IP上INTERNET的方法,这样就限制了这些用户在自己计算机上架设个人网站,要实现在这些用户端架设网站,最关键的一点是 ...
最新文章
- 《任正非:我若贪生怕死,何来让你们英勇奋斗》
- 无密码进去mysql_技术分享 | 安全地无密码登录 MySQL
- linux C编程之makefile
- 前端求职-htmlcss
- gsoap使用心得! (win32)
- 云原生全景图之六 | 托管 Kubernetes 和 PaaS 解决什么问题
- android权威指南十三章,《Android编程权威指南》第30~32以及第34章读书笔记
- nmap扫描ipv6端口_web渗透测试系列 之 扫描(3)
- 远程580解锁bl工具_一年让你多挣4万的工具丨又增VIVO新款保资料解锁!
- 出现在嵌入式DSP上可用于实现各种编解码器
- 智能优化算法:基于Powell优化的鸽群优化算法
- Flex在线拍照功能
- 解决android SDK不能更新,appium测试混合app无法返回webview问题
- 计算机id dns知识,智能DNS解析知识集锦
- C++面试宝典 知识点集锦
- A320M HDV 4.0主板用CH341A手动刷BIOS支持5600g
- pycharm的安装配置及思维导图
- 扫地机器人的构造及核心技术详解
- Springboot部署Nginx,配合Supervisor管理Springboot进程
- 2021蓝桥杯省赛b题解
热门文章
- TC配置文件WCMD.INI详解,只能在ini重修改的配置
- android各种权限及说明
- Http环境下的保持连接方式
- 在PHP语言中使用JSON
- XML与DataSet的相互转换类
- 只要可能,就缓存数据和页输出
- 在C#中应用哈希表(Hashtable)
- 设计模式之外观模式(Facade)摘录
- Windows 64位机上C/C++代码静态检查工具Logiscope RuleChecker的安装和使用
- 华为鸿蒙手机官网价格表,曝下半年华为将推出两款鸿蒙手机:国内独享,价格良心...