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 ...
随机推荐
- 为什么CSS中的calc函数可能会不生效?
前言 在早期如果想要对某一些样式进行动态计算,绝大多数的做法都是使用JavaScript来进行,当时的CSS在面对这种场景显得有点无能为力.但是,当CSS3中新增了calc函数时,面对这种场景,Jav ...
- Python基础之函数:3、多层语法糖、装饰器和装饰器修复技术及递归函数
目录 一.多层语法糖 1.什么是多层语法糖: 2.多层语法糖用法: 二.有参装饰器 1.什么是有参装饰器: 2.有参装饰器的作用: 三.装饰器修复技术 1.什么是装饰器修复技术: 四.递归函数 1.什 ...
- 如何理解Java中眼花缭乱的各种并发锁?
在互联网公司面试中,很多小伙伴都被问到过关于锁的问题. 今天,我给大家一次性把Java并发锁的全家桶彻底讲明白.包括互斥锁.读写锁.重入锁.公平锁.悲观锁.自旋锁.偏向锁等等等等.视频有点长,大家一定 ...
- 嵌入式-C语言基础:指针数组(和数组指针区分开来)
指针数组:一个数组,若其元素均为指针类型的数据,称为指针数组,指针数组存放的是指针类型的数据,也就是指针数组的每个元素都存放一个地址.下面定义一个指针数组: int * p[4];//[]的优先级是比 ...
- 1742C
题目链接 题目大意: 在一个8x8的方格中你每次可以将一行全部涂成红色或者将一列涂成蓝色.问最后一次操作是什么操作: 如果是行操作就输出R 如果是列操作就输出B 解题思路: 我们可一枚举每行每列,如果 ...
- PGL图学习之图神经网络ERNIESage、UniMP进阶模型[系列八]
PGL图学习之图神经网络ERNIESage.UniMP进阶模型[系列八] 原项目链接:fork一下即可:https://aistudio.baidu.com/aistudio/projectdetai ...
- Codeforces Round #836 (Div. 2) A-D
比赛链接 A 题意 给一个字符串 \(s\) ,对其加倍,即每个字符后面追加一个相同字符. 加倍后可以重排列,要求构造一个回文串. 题解 知识点:构造. 既然可以重排列了,那顺序是随意的了,直接翻转加 ...
- 万字长文!对比分析了多款存储方案,KeeWiDB最终选择自己来
大数据时代,无人不知Google的"三驾马车"."三驾马车"指的是Google发布的三篇论文,介绍了Google在大规模数据存储与计算方向的工程实践,奠定了业界 ...
- POST请求发送的表单数据和json数据的区别及python代码实现
前言 这篇博客会介绍最常见post 请求form表单数据和json数据 数据类型之间的区别, urllib代码的实现(python), requests库实现, 以及如何使用postman软件发送这些 ...
- APACHE快速安装流程梳理
操作参考教程:https://www.cnblogs.com/haw2106/p/9839655.html 快速安装开始: [环境配置1] yum -y install gcc gcc-c++ wge ...