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 ...
随机推荐
- ajax-Xhr
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Python基础部分:3、 pycharm的下载与使用
目录 pycharm下载与使用 一.软件说明 二.版本说明 三.如何免费使用正式版软件 四.pycharm运行空间 五.文件后缀名 六.安装pycharm工具 七.pycharm的基本配置和PY文件的 ...
- 从小白到架构师(4): Feed 流系统实战
「从小白到架构师」系列努力以浅显易懂.图文并茂的方式向各位读者朋友介绍 WEB 服务端从单体架构到今天的大型分布式系统.微服务架构的演进历程.读了三篇万字长文之后各位想必已经累了(主要是我写累了), ...
- 想开发DAYU200,我教你
摘要:本文主要介绍OpenHarmony富设备DAYU200开发板的入门指导. 本文分享自华为云社区<DAYU200开发指导>,作者: 星辰27. 1 概述 DAYU200开发板属于Ope ...
- django-environ学习
官方说明:https://django-environ.readthedocs.io/en/latest/index.html install pip install django-environ q ...
- CSP-J2022 题解报告
\(CSP-J2022\) 题解报告 \(T1\) 乘方: 发现 \(2^{32}>10^9\),所以这个题只需要特判 \(a=1\) 的情况为 \(1\),其他直接枚举再判断即可. Code: ...
- 重学c#系列——动态类型[二十二]
前言 该系列准备继续完善,一共108篇,持续更新. 正文 为什么有动态类型呢? 是因为很多东西天生就是动态类型的. 比如xml 和 json.cvs.数据库表,这些本来就是数据类型的. 在反射系列中提 ...
- 关于 python 的内存机制
先看一段代码 L = [1,2,3] dic_ = {} L2 = [] for i in L: dic_['sn'] = i L2.append(dic_) print(L2) 输出 [{'sn': ...
- Pandas_1_预备知识
Chapter1_Python基础 1.1 Python基础 推导式: 两个对象之间的映射关系,类似于实数之间关系变换的函数,只不过对象变成了矩阵. # Ex1-1 vacabulary = ['co ...
- 【每日一题】【遍历orSet】2022年2月1日-NC66 两个链表的第一个公共结点
描述输入两个无环的单向链表,找出它们的第一个公共结点,如果没有公共节点则返回空.(注意因为传入数据是链表,所以错误测试数据的提示是用其他方式显示的,保证传入数据是正确的) 输入描述:输入分为是3段,第 ...