1. 程式人生 > 其它 >centos7筆記本使用iptables服務,將筆記本模擬成為出口路由器 PPPOE撥號+NAT+埠對映

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

郵箱:[email protected]