centos7笔记本使用iptables服务,将笔记本模拟成为出口路由器 PPPOE拨号+NAT+端口映射
郑州洪水,闲置在家,捣鼓捣鼓
centos7笔记本使用iptables服务,将笔记本模拟成为出口路由器 PPPOE拨号+NAT+端口映射
环境:
1.笔记本单网口,无法做路由网关,手里有个闲置的USBA转网口的网卡,也想知道能不能被centos7系统识别。
2.外网是PPPOE拨号
3.内部有设备需要映射到外网
过程:
1.重装系统
正常最小安装安装系统
配置外网口进行PPPOE拨号
这里参考https://www.cnblogs.com/gotodsp/p/5513945.html
有个注意事项,拨号之后会生成ppp0虚拟网卡,运营商分配的地址在这个网卡上,后面NAT实际也是利用这个虚拟网卡上的IP访问的外网。所以要删除真实网卡上的地址,例如用eth0拨号,你需要把eth0上的IP、掩码、网关、DNS删除。
2.安装iptables服务
yum -y install iptables-services
3.将相关模块加载到内核中(永久添加)
cat >>/etc/rc.local<<EOF
modprobe ip_tables
modprobe iptable_filter
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
modprobe ipt_state
EOF
4.检查是否启动完成
lsmod |egrep 'filter|nat|ipt'
必须有:iptable_nat 和 iptable_filter
5.关闭firewalld防火墙 --- cenos6好像默认没有这个服务,这一步就可以省略
systemctl stop firewalld
systemctl disable firewalld
systemctl status firewalld --- 检查一下
6.开启iptables服务
systemctl start iptables.service
systemctl enable iptables.service
systemctl status iptables.service --- 检查一下
7.添加NAT地址转换进行共享上网
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ppp0 -j MASQUERADE
iptables -t nat -A POSTROUTING -s --- 前面这些内容不用动,固定格式
192.168.100.0/24 --- 这个写上你想要转换的内网地址
-o ppp0 --- 因为我家外网是PPPOE拨号,地址不固定,没办法配置地址,只能自动转换成ppp0这个虚拟网口上动态获取的IP。如果是固定公网IP可以直接写连接ISP的真实接口地址,下面我会给出固定地址的配置方法,其实固定地址也可以用此方法。
固定IP也可用下面的配置方法
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -j SNAT --to-source 100.0.0.201
8.添加端口映射
iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 5000 -j DNAT --to-destination 192.168.100.201:5000
将外网的5000端口映射到内网的5000端口,可以对应,也可以不对应,例如可以把外网的80端口映射到内网服务器的8080端口,改变一下端口就行,像windows的3389可以使用udp进行加速,只需要将-p后面的tcp改成udp,然后内外网端口改成3389即可。
固定公网IP映射
iptables -t nat -A PREROUTING -d 100.0.0.201 -p tcp --dport 9000 -j DNAT --to-destination 192.168.31.202:22
100.0.0.201改成你自己的公网IP就行
9.配置允许服务器进行报文转发
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p --- 激活上面写入的配置
10.总结
到这就可以测试了,我自己有两个地方出错导致无法连上
iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o ppp0 -j MASQUERADE
这条命令配置的时候出接口写成了eth0(内网接口),导致内部设备无法上网,后来又改成eth1(外网接口),结果还是不行,懵逼了一晚上,突然想到我配置华三和华为那些路由器的时候,客户环境如果是拨号,都是在虚拟接口上配置的nat outbound,然后改成ppp0果然成功,第二个问题也是这个原因导致映射不成功,映射也需要用虚接口
遗留问题:
1.有时候会需要接进家里的网络,我之前在内部部署的docker然后安装ipsec之后能够正常访问内部地址,但是直接部署在此网关上,电脑和手机能够成功拨进来,但无法正常连接内部IP。
2.我内部基本都是固定IP,唯一需要自动分配地址的就是无线网络,因为有胖AP分地址,就没有学习DHCP部署,后续应该会补上
3.我的wol自动唤醒服务好像默认eth0进行广播,因为出现现象:测试时电脑和eth0在一个网段,可以正常唤醒主机,实际部署时用eth1连接内部设备,无法唤醒主机
2021/07/26
水平有限,希望大佬提 携感激不尽
若有小伙伴有问题也可以评论或联系我
QQ:1060042877
邮箱:15238522806@139.com
centos7笔记本使用iptables服务,将笔记本模拟成为出口路由器 PPPOE拨号+NAT+端口映射的更多相关文章
- iptables、防火墙配置、NAT端口映射
一,配置一个filter表放火墙 (1)查看本机关于IPTABLES的设置情况 [root@tp ~]# iptables -L -n Chain INPUT (policy ACCEPT) targ ...
- centos7 没有iptables服务 file or directory? 用secureCRT登录centos?
cenetos7 采用systemd来管理服务 centos7 没有采用传统的iptables服务, 而是采用的firewalld 服务, 以及firewall-cmd 命令; 也可以采用传统的 ip ...
- CentOS 7安装iptables服务,以及常用命令
之前使用的是CentOS6.5,并且学艺不精,用啥查啥,用完就忘.并且网上大部分资料是基于CentOS7之前的版本. 在CentOS7中,默认的防火墙不是iptables,而是firewalld.而且 ...
- CentOS7下安装SVN服务端
CentOS7下安装SVN服务 1. yum命令即可方便的完成安装# sudo yum install subversion 测试安装是否成功:# svnserve --version 更改svn的默 ...
- CentOS7安装配置iptables防火墙
转载请注明出处:http://blog.csdn.net/l1028386804/article/details/50779761 CentOS7默认的防火墙不是iptables,而是firewall ...
- centos7上安装iptables
centos7上安装iptables的步骤 注意:CentOS7默认的防火墙不是iptables,而是firewalle. 安装iptable iptable-service #安装iptables ...
- CentOS7防火墙设置--iptables
CentOS7默认使用的是firewalld而不是之前的iptables.需要先停用firewalld. systemctl stop firewalld 安装 iptables 服务 yum -y ...
- CentOS7安装部署squid服务(透明代理+反向代理)
一.squid服务介绍 Squid是一个高性能的代理缓存服务器,Squid支持FTP.gopher.HTTPS和HTTP协议.和一般的代理缓存软件不同,Squid用一个单独的.非模块化的.I/O驱动的 ...
- Linux操作系统-CentOS7启动流程和服务管理
Linux操作系统-CentOS7启动流程和服务管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.systemd POST --> Boot Sequence --&g ...
随机推荐
- 打地鼠(susliks) 方法记录
[SDOI2011]打地鼠 题目描述 2020.4.29 数据更新. 打地鼠是这样的一个游戏:地面上有一些地鼠洞,地鼠们会不时从洞里探出头来很短时间后又缩回洞中.玩家的目标是在地鼠伸出头时,用锤子砸其 ...
- mybatis中association和collection使用
mybatis中association和collection使用 一.概述 association:一个复杂的类型关联.许多结果将包成这种类型 collection:复杂类型的集合 这2个属性的使用, ...
- PS2023下载安装保姆级教程中文汉化完整版
PS2023Windows安装教程退出安全软件①:下载PS2023安装包 ②:打开下载好的文件,鼠标右键把安装包解压③:打开解压好的"PS 24.0.0"文件夹,找到并选中&quo ...
- win10系统VMWare16 Pro 安装CentOS8
目录 一.本机环境与问题解决 二.下载软件 三.VMWare16 Pro安装 四.CentOS8 安装 一.本机环境与问题解决 装了好几遍,感觉坑都踩了一遍,泪奔~,还好终于跑起来了! 查看电脑是否开 ...
- centos7 redis6.2.6安装
1. 源码包下载并解压 wget http://download.redis.io/releases/redis-6.2.6.tar.gz tar -zxvf redis-6.2.6.tar.gz 2 ...
- flex布局中,元素等间距设置,包括第一个元素的左边,最后一个元素的右边,也等间距
项目中很多地方会用到等间距排放的场景,使用flex 布局可以很方便的实现 .fu{ display: flex; ustify-content: space-between; } 通过上面代码,可以实 ...
- MathNet用到的一些功能
1.计算一元线性函数 Tuple<double, double> myLineTuple = MathNet.Numerics.Fit.Line(myXArray, myYArray); ...
- Android ViewPager2 + Fragment + BottomNavigationView 联动
Android ViewPager2 + Fragment + BottomNavigationView 联动 本篇主要介绍一下 ViewPager2 + Fragment + BottomNavig ...
- 同时容器,k8s和docker区别是什么? 如何简单理解k8s和docker
1.k8s是一个开源的容器集群管理系统,可以实现容器集群的自动化部署.自动扩缩容.维护等功能. 2.Docker是一个开源的应用容器引擎,开发者可以打包他们的应用及依赖到一个可移植的容器中,发布到流行 ...
- 像go 一样 打造.NET 单文件应用程序的编译器项目bflat 发布 7.0版本
现代.NET和C#在低级/系统程序以及与C/C++/Rust等互操作方面的能力完全令各位刮目相看了,有人用C#开发的64位操作系统: GitHub - nifanfa/MOOS: C# x64 ope ...