郑州洪水,闲置在家,捣鼓捣鼓

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

内容来源于网络如有侵权请私信删除

文章来源: 博客园

原文链接: https://www.cnblogs.com/yijiaren/p/15060609.html

你还没有登录,请先登录注册
  • 还没有人评论,欢迎说说您的想法!