iptables -t nat -vnL是什么命令?
網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作介紹好的網(wǎng)站是理念、設(shè)計(jì)和技術(shù)的結(jié)合。創(chuàng)新互聯(lián)建站擁有的網(wǎng)站設(shè)計(jì)理念、多方位的設(shè)計(jì)風(fēng)格、經(jīng)驗(yàn)豐富的設(shè)計(jì)團(tuán)隊(duì)。提供PC端+手機(jī)端網(wǎng)站建設(shè),用營銷思維進(jìn)行網(wǎng)站設(shè)計(jì)、采用先進(jìn)技術(shù)開源代碼、注重用戶體驗(yàn)與SEO基礎(chǔ),將技術(shù)與創(chuàng)意整合到網(wǎng)站之中,以契合客戶的方式做到創(chuàng)意性的視覺化效果。
用詳細(xì)方式列出 nat 表所有鏈的所有規(guī)則,只顯示 IP 地址和端口號(hào)
iptables -L
粗略列出 filter 表所有鏈及所有規(guī)則
iptables -t nat -vxnL PREROUTING
用詳細(xì)方式列出 nat 表 PREROUTING 鏈的所有規(guī)則以及詳細(xì)數(shù)字,不反解
iptables -t nat -F PREROUTING
-F: FLASH,清空規(guī)則鏈的(注意每個(gè)鏈的管理權(quán)限)
PREROUTING (路由前)
-t nat:顯示所有的關(guān)卡的信息
iptables -t nat -F 清空nat表的所有鏈
iptables -t nat -F PREROUTING 清空nat表PREROUTING鏈
iptables -t nat -vnL | grep SNAT | awk -F : {'print $2'} 得到snat ip
iptables -t nat -D POSTROUTING -o eth1 -j SNAT --to ${snat_ip} 刪除所有源地址轉(zhuǎn)換表項(xiàng)
iptables -t nat -A PREROUTING -i %{G_HOST_IF0_0_0} -p tcp --dport %{G_TESTBED_SELENIUM_DPORT} -j DNAT --to %{G_PROD_IP_BR0_0_0}:80 添加源轉(zhuǎn)換表項(xiàng)
iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to ${ip} 添加目的轉(zhuǎn)換表項(xiàng)
iptables -t nat -vnL 察看定義規(guī)則的詳細(xì)信息
最近在Linux下有兩個(gè)WiFi模組(一個(gè)為2.4GHz,另一個(gè)為2.4GHz+5GHz雙頻),剛好路由器為2.4GHz的,而其他接收設(shè)備在2.4GHz下數(shù)據(jù)處理不穩(wěn)定,想切換為5GHz嘗試,故而將兩個(gè)WiFi模組同時(shí)連接到PC上(通過USB接口),當(dāng)驅(qū)動(dòng)都加載成功時(shí)會(huì)映射出wlan0和wlan1,關(guān)于AP和STA的配置部分在此不說明,下面主要說明下如何讓wlan0(2.4G,連接外網(wǎng),作STA)和wlan1(雙頻,連接內(nèi)網(wǎng),作AP)進(jìn)行IP轉(zhuǎn)發(fā)操作,其實(shí)也很簡單,只需要執(zhí)行如下命令即可:
echo 1 /proc/sys/net/ipv4/ip_forward
/system/bin/iptables -A FORWARD -i wlan1 -o wlan0 -m state --state ESTABLISHED,RELATED -j ACCEPT
/system/bin/iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT
/system/bin/iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
其中第一條命令很重要,作用是打開IP轉(zhuǎn)發(fā)功能,然后接下來三條命令是添加路由規(guī)則(后兩條就夠了)。
參照文章,上面的語句應(yīng)改為:
echo 1 /proc/sys/net/ipv4/ip_forward
/system/bin/iptables -A FORWARD -i wlan0 -o wlan1 -m state --state ESTABLISHED,RELATED -j ACCEPT
/system/bin/iptables -A FORWARD -i wlan1 -o wlan0 -j ACCEPT
/system/bin/iptables -t nat -A POSTROUTING -o wlan0 -j MASQUERADE
1. 配置IP地址
1.1 正確配置學(xué)校分配的IP使能正常上網(wǎng)
1) 按學(xué)校分配的IP地址配置好Linux主機(jī)
[~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
| DEVICE=eth0 |
| BOOTPROTO=none |
| HWADDR=00:1E:90:13:E0:25 |
| IPADDR=10.3.10.19 |
| NETMASK=255.255.255.0 |
| GATEWAY=10.3.10.254 |
| ONBOOT=yes |
| TYPE=Ethernet |
| DNS1=211.64.120.2 |
| DEFROUTE=yes |
| DOMAIN=168.96.1.1 |
2) 重起網(wǎng)卡
[~]# servie network restart
note: 經(jīng)過以上的配置, Linux主機(jī)應(yīng)該能夠正常上網(wǎng)了!
1.2 新增eth0別名設(shè)備eth0:0
[~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0:0
| # eth0:0 必須要用''括起來: 'eth0:0' |
| DEVICE='eth0:0' |
| ONBOOT=yes |
| BOOTPROTO=static |
| IPADDR=192.168.50.1 |
| NETMASK=255.255.255.0 |
| USERCTL=no |
1.3 配置后 查看一下是否配置成功:
[~]# ifconfig
| eth0 Link encap:Ethernet HWaddr 00:1E:90:13:E0:25 |
| inet addr:10.3.10.19 Bcast:10.3.10.255 Mask:255.255.255.0 |
| inet6 addr: fe80::21e:90ff:fe13:e025/64 Scope:Link |
| UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 |
| RX packets:187685 errors:0 dropped:0 overruns:0 frame:0 |
| TX packets:137327 errors:0 dropped:0 overruns:0 carrier:0 |
| collisions:0 txqueuelen:1000 |
| RX bytes:134816893 (128.5 MiB) TX bytes:56066393 (53.4 MiB) |
| Interrupt:27 Base address:0xa000 |
| eth0:0 Link encap:Ethernet HWaddr 00:1E:90:13:E0:25 |
| inet addr:192.168.50.1 Bcast:192.168.50.255 Mask:255.255.255.0 |
| UP BROADCAST RUNNING PROMISC MULTICAST MTU:1500 Metric:1 |
| Interrupt:27 Base address:0xa000 |
2. 配置路由
由于在配置網(wǎng)卡接口時(shí), 已自動(dòng)配置一定的路由, 所以我們只需查看一下其信息, 驗(yàn)證其
是否已經(jīng)被正確配置:
[root ~]$ route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.50.0 * 255.255.255.0 U 0 0 0 eth0
10.3.10.0 * 255.255.255.0 U 1 0 0 eth0
link-local * 255.255.0.0 U 1002 0 0 eth0
default 10.3.10.254 0.0.0.0 UG 0 0 0 eth0
3. 配置NAT
1) 新建nat.sh腳本文件并保存在 /usr/local/nat/ 目錄下:
[~]# cat /usr/local/nat/nat.sh
| #!/bin/bash |
| # 0. 設(shè)定你的參數(shù)值 |
| EXIF='eth0' # 這個(gè)是對(duì)外的網(wǎng)卡接口, 可能是'ppp0'等 |
| EXNET='192.168.50.0/24' # 這個(gè)是對(duì)內(nèi)的網(wǎng)段 |
| # 底下如無需要, 請(qǐng)不要改動(dòng)了! |
| # 1. 啟動(dòng)routing等 |
| echo 1 /proc/sys/net/ipv4/ip_forward |
| /sbin/iptables -F |
| /sbin/iptables -X |
| /sbin/iptables -Z |
| /sbin/iptables -F -t nat |
| /sbin/iptables -X -t nat |
| /sbin/iptables -Z -t nat |
| /sbin/iptables -P INPUT ACCEPT |
| /sbin/iptables -P OUTPUT ACCEPT |
| /sbin/iptables -P FORWARD ACCEPT |
| /sbin/iptables -t nat -P PREROUTING ACCEPT |
| /sbin/iptables -t nat -P POSTROUTING ACCEPT |
| /sbin/iptables -t nat -P OUTPUT ACCEPT |
| # 2. 載入模組 |
| /sbin/modprobe ip_tables 2 /dev/null |
| /sbin/modprobe ip_nat_ftp 2 /dev/null |
| /sbin/modprobe ip_nat_irc 2 /dev/null |
| /sbin/modprobe ip_conntrack 2 /dev/null |
| /sbin/modprobe ip_conntrack_ftp 2 /dev/null |
| /sbin/modprobe ip_conntrack_irc 2 /dev/null |
| # 3. 啟動(dòng)ip偽裝 |
| /sbin/iptables -t nat -A POSTROUTING -o $EXIF -s $EXNET -j MASQUERADE |
2) 增加可執(zhí)行權(quán)限
[~]# chmod +x /usr/local/nat/nat.sh
4. 大功告成
1) Linux主機(jī)配置完成, 現(xiàn)在只需重新啟動(dòng)一下剛才的配置:
[~]# servie network restart
[~]# /usr/local/nat/nat.sh
2) 為了使得開機(jī)即可運(yùn)行, 可在 /etc/rc.d/rc.local 文件加入相應(yīng)的命令:
[~]# echo "/usr/local/nat/nat.sh" /etc/rc.d/rc.local
5. 配置客戶機(jī)(可以是windows或linux等其它系統(tǒng))
1. network 設(shè)定需要為: 192.168.50.0
2. broadcast 設(shè)定需要為: 192.168.50.255
3. netmask 設(shè)定需要為 255.255.255.0
4. IP 設(shè)定需要為 192.168.50.1 ~ 192.168.50.254 之一, 且『不能重復(fù)』
5. Gateway 或者要設(shè)定為你的 Linux 的對(duì)內(nèi) IP , 以我的例子來說, 就是
192.168.50.1
6. DNS 的設(shè)定: 這個(gè)最容易出錯(cuò)了, DNS 設(shè)定需要是 ISP 給你的 DNS
IP, 如果不知道的話, 可以填入 168.95.1.1 或者是
139.175.10.20 這一個(gè) SeedNet 的 DNS 即可!千萬不要設(shè)定為 192.168.1.2