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