iptables四個表與五個鏈
一、netfilter和iptables說明:
1、 netfilter/iptables IP 資訊包過濾系統是一種功能強大的工具,可用於新增、編輯和除去規則,這些規則是在做資訊包過濾決定時,防火牆所遵循和組成的規則。這些規則儲存在專用的資訊包過濾表中,而這些表整合在 Linux 核心中。在資訊包過濾表中,規則被分組放在我們所謂的鏈(chain)中。
雖然 netfilter/iptables IP 資訊包過濾系統被稱為單個實體,但它實際上由兩個元件 netfilter 和 iptables 組成。
(1). netfilter 元件也稱為核心空間(kernelspace)
(2). iptables 元件是一種工具,也稱為使用者空間(userspace),它使插入、修改和除去資訊包過濾表中的規則變得容易。
iptables包含4個表,5個鏈。其中表是按照對資料包的操作區分的,鏈是按照不同的Hook點來區分的,表和鏈實際上是netfilter的兩個維度。
2、 4個表:filter,nat,mangle,raw,預設表是filter(沒有指定表的時候就是filter表)。表的處理優先順序:raw>mangle>nat>filter。
filter:一般的過濾功能
nat:用於nat功能(埠對映,地址對映等)
mangle:用於對特定資料包的修改
raw:有限級最高,設定raw時一般是為了不再讓iptables做資料包的連結跟蹤處理,提高效能
RAW 表只使用在PREROUTING鏈和OUTPUT鏈上,因為優先順序最高,從而可以對收到的資料包在連線跟蹤前進行處理。一但使用者使用了RAW表,在某個鏈 上,RAW表處理完後,將跳過NAT表和 ip_conntrack處理,即不再做地址轉換和資料包的連結跟蹤處理了.
RAW表可以應用在那些不需要做nat的情況下,以提高效能。如大量訪問的web伺服器,可以讓80埠不再讓iptables做資料包的連結跟蹤處理,以提高使用者的訪問速度。
3、 5個鏈:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING。
PREROUTING:資料包進入路由表之前
INPUT:通過路由表後目的地為本機
FORWARDING:通過路由表後,目的地不為本機
OUTPUT:由本機產生,向外轉發
POSTROUTIONG:傳送到網絡卡介面之前。如下圖:
iptables中表和鏈的對應關係如下:
二、iptables的資料包的流程是怎樣的?一個數據包到達時,是怎麼依次穿過各個鏈和表的(圖)。
基本步驟如下:
1. 資料包到達網路介面,比如 eth0。
2. 進入 raw 表的 PREROUTING 鏈,這個鏈的作用是趕在連線跟蹤之前處理資料包。
3. 如果進行了連線跟蹤,在此處理。
4. 進入 mangle 表的 PREROUTING 鏈,在此可以修改資料包,比如 TOS 等。
5. 進入 nat 表的 PREROUTING 鏈,可以在此做DNAT,但不要做過濾。
6. 決定路由,看是交給本地主機還是轉發給其它主機。
到了這裡我們就得分兩種不同的情況進行討論了,一種情況就是資料包要轉發給其它主機,這時候它會依次經過:
7. 進入 mangle 表的 FORWARD 鏈,這裡也比較特殊,這是在第一次路由決定之後,在進行最後的路由決定之前,我們仍然可以對資料包進行某些修改。
8. 進入 filter 表的 FORWARD 鏈,在這裡我們可以對所有轉發的資料包進行過濾。需要注意的是:經過這裡的資料包是轉發的,方向是雙向的。
9. 進入 mangle 表的 POSTROUTING 鏈,到這裡已經做完了所有的路由決定,但資料包仍然在本地主機,我們還可以進行某些修改。
10. 進入 nat 表的 POSTROUTING 鏈,在這裡一般都是用來做 SNAT ,不要在這裡進行過濾。
11. 進入出去的網路介面。完畢。
另一種情況是,資料包就是發給本地主機的,那麼它會依次穿過:
7. 進入 mangle 表的 INPUT 鏈,這裡是在路由之後,交由本地主機之前,我們也可以進行一些相應的修改。
8. 進入 filter 表的 INPUT 鏈,在這裡我們可以對流入的所有資料包進行過濾,無論它來自哪個網路介面。
9. 交給本地主機的應用程式進行處理。
10. 處理完畢後進行路由決定,看該往那裡發出。
11. 進入 raw 表的 OUTPUT 鏈,這裡是在連線跟蹤處理本地的資料包之前。
12. 連線跟蹤對本地的資料包進行處理。
13. 進入 mangle 表的 OUTPUT 鏈,在這裡我們可以修改資料包,但不要做過濾。
14. 進入 nat 表的 OUTPUT 鏈,可以對防火牆自己發出的資料做 NAT 。
15. 再次進行路由決定。
16. 進入 filter 表的 OUTPUT 鏈,可以對本地出去的資料包進行過濾。
17. 進入 mangle 表的 POSTROUTING 鏈,同上一種情況的第9步。注意,這裡不光對經過防火牆的資料包進行處理,還對防火牆自己產生的資料包進行處理。
18. 進入 nat 表的 POSTROUTING 鏈,同上一種情況的第10步。
19. 進入出去的網路介面。完畢。
三、iptables raw表的使用增加raw表,在其他表處理之前,-j NOTRACK跳過其它表處理
狀態除了以前的四個還增加了一個UNTRACKED
例如:
可以使用 “NOTRACK” target 允許規則指定80埠的包不進入連結跟蹤/NAT子系統
iptables -t raw -A PREROUTING -d 1.2.3.4 -p tcp --dport 80 -j NOTRACK
iptables -t raw -A PREROUTING -s 1.2.3.4 -p tcp --sport 80 -j NOTRACK
iptables -A FORWARD -m state --state UNTRACKED -j ACCEPT
四、解決ip_conntrack: table
full, dropping packet的問題
在啟用了iptables web伺服器上,流量高的時候經常會出現下面的錯誤:
ip_conntrack: table full, dropping packet
這個問題的原因是由於web伺服器收到了大量的連線,在啟用了iptables的情況下,iptables會把所有的連線都做連結跟蹤處理,這樣iptables就會有一個連結跟蹤表,當這個表滿的時候,就會出現上面的錯誤。
iptables的連結跟蹤表最大容量為/proc/sys/net/ipv4/ip_conntrack_max,連結碰到各種狀態的超時後就會從表中刪除。
所以解決方法一般有兩個:
(1) 加大 ip_conntrack_max 值
vi /etc/sysctl.conf
net.ipv4.ip_conntrack_max = 393216
net.ipv4.netfilter.ip_conntrack_max = 393216
(2): 降低 ip_conntrack timeout時間
vi /etc/sysctl.conf
net.ipv4.netfilter.ip_conntrack_tcp_timeout_established = 300
net.ipv4.netfilter.ip_conntrack_tcp_timeout_time_wait = 120
net.ipv4.netfilter.ip_conntrack_tcp_timeout_close_wait = 60
net.ipv4.netfilter.ip_conntrack_tcp_timeout_fin_wait = 120
上面兩種方法打個比喻就是燒水水開的時候,換一個大鍋。一般情況下都可以解決問題,但是在極端情況下,還是不夠用,怎麼辦?
這樣就得反其道而行,用釜底抽薪的辦法。iptables的raw表是不做資料包的連結跟蹤處理的,我們就把那些連線量非常大的連結加入到iptables raw表。
如一臺web伺服器可以這樣:
iptables -t raw -A PREROUTING -d 1.2.3.4 -p tcp --dport 80 -j NOTRACK
iptables -A FORWARD -m state --state UNTRACKED -j ACCEPT
五、例項說明:
1、單個規則例項
iptables -F?
# -F 是清除的意思,作用就是把 FILTRE TABLE 的所有鏈的規則都清空
iptables -A INPUT -s 172.20.20.1/32 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
#在 FILTER 表的 INPUT 鏈匹配源地址是172.20.20.1的主機,狀態分別是NEW,ESTABLISHED,RELATED 的都放行。
iptables -A INPUT -s 172.20.20.1/32 -m state --state NEW,ESTABLISHED -p tcp -m multiport --dport 123,110 -j ACCEPT
# -p 指定協議,-m 指定模組,multiport模組的作用就是可以連續匹配多各不相鄰的埠號。完整的意思就是源地址是172.20.20.1的主機,狀態分別是NEW, ESTABLISHED,RELATED的,TCP協議,目的埠分別為123 和 110 的資料包都可以通過。
iptables -A INPUT -s 172.20.22.0/24 -m state --state NEW,ESTABLISHED -p tcp -m multiport --dport 123,110 -j ACCEPT
iptables -A INPUT -s 0/0 -m state --state NEW -p tcp -m multiport --dport 123,110 -j DROP
#這句意思為源地址是0/0的 NEW狀態的的TCP資料包都禁止訪問我的123和110埠。
iptables -A INPUT -s ! 172.20.89.0/24 -m state --state NEW -p tcp -m multiport --dport 1230,110 -j DROP
# "!"號的意思 取反。就是除了172.20.89.0這個IP段的地址都DROP。
iptables -R INPUT 1 -s 192.168.6.99 -p tcp --dport 22 -j ACCEPT
替換INPUT鏈中的第一條規則
iptables -t filter -L INPUT -vn
以數字形式詳細顯示filter表INPUT鏈的規則
#-------------------------------NAT IP--------------------------------------
#以下操作是在 NAT TABLE 裡面完成的。請大家注意。
iptables -t nat -F
iptables -t nat -A PREROUTING -d 192.168.102.55 -p tcp --dport 90 -j DNAT --to 172.20.11.1:800
#-A PREROUTING 指定在路由前做的。完整的意思是在 NAT TABLE 的路由前處理,目的地為192.168.102.55 的 目的埠為90的我們做DNAT處理,給他轉向到172.20.11.1:800那裡去。
iptables -t nat -A POSTROUTING -d 172.20.11.1 -j SNAT --to 192.168.102.55
#-A POSTROUTING 路由後。意思為在 NAT TABLE 的路由後處理,凡是目的地為 172.20.11.1 的,我們都給他做SNAT轉換,把源地址改寫成 192.168.102.55 。
iptables -A INPUT -d 192.168.20.0/255.255.255.0 -i eth1 -j DROP
iptables -A INPUT -s 192.168.20.0/255.255.255.0 -i eth1 -j DROP
iptables -A OUTPUT -d 192.168.20.0/255.255.255.0 -o eth1 -j DROP
iptables -A OUTPUT -s 192.168.20.0/255.255.255.0 -o eth1 -j DROP
# 上例中,eth1是一個與外部Internet相連,而192.168.20.0則是內部網的網路號,上述規則用來防止IP欺騙,因為出入eth1的包的ip應該是公共IP
iptables -A INPUT -s 255.255.255.255 -i eth0 -j DROP
iptables -A INPUT -s 224.0.0.0/224.0.0.0 -i eth0 -j DROP
iptables -A INPUT -d 0.0.0.0 -i eth0 -j DROP
# 防止廣播包從IP代理伺服器進入區域網:
iptables -A INPUT -p tcp -m tcp --sport 5000 -j DROP
iptables -A INPUT -p udp -m udp --sport 5000 -j DROP
iptables -A OUTPUT -p tcp -m tcp --dport 5000 -j DROP
iptables -A OUTPUT -p udp -m udp --dport 5000 -j DROP
# 遮蔽埠 5000
iptables -A INPUT -s 211.148.130.129 -i eth1 -p tcp -m tcp --dport 3306 -j DROP
iptables -A INPUT -s 192.168.20.0/255.255.255.0 -i eth0 -p tcp -m tcp --dport 3306 -j ACCEPT
iptables -A INPUT -s 211.148.130.128/255.255.255.240 -i eth1 -p tcp -m tcp --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp -m tcp --dport 3306 -j DROP
# 防止 Internet 網的使用者訪問 MySQL 伺服器(就是 3306 埠)
iptables -A FORWARD -p TCP --dport 22 -j REJECT --reject-with tcp-reset
#REJECT, 類似於DROP,但向傳送該包的主機回覆由--reject-with指定的資訊,從而可以很好地隱藏防火牆的存在
2、www的iptables例項
#!/bin/bash
export PATH=/sbin:/usr/sbin:/bin:/usr/bin
#載入相關模組
modprobe iptable_nat
modprobe ip_nat_ftp
modprobe ip_nat_irc
modprobe ip_conntrack
modprobe ip_conntrack_ftp
modprobe ip_conntrack_irc
modprobe ipt_limit
echo 1 >;/proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
echo 0 >;/proc/sys/net/ipv4/conf/all/accept_source_route
echo 0 >;/proc/sys/net/ipv4/conf/all/accept_redirects
echo 1 >;/proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo 1 >;/proc/sys/net/ipv4/conf/all/log_martians
echo 1 >;/proc/sys/net/ipv4/tcp_syncookies
iptables -F
iptables -X
iptables -Z
## 允許本地迴路?Loopback - Allow unlimited traffic
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
## 防止SYN洪水?SYN-Flooding Protection
iptables -N syn-flood
iptables -A INPUT -i ppp0 -p tcp --syn -j syn-flood
iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
iptables -A syn-flood -j DROP
## 確保新連線是設定了SYN標記的包?Make sure that new TCP connections are SYN packets
iptables -A INPUT -i eth0 -p tcp ! --syn -m state --state NEW -j DROP
## 允許HTTP的規則
iptables -A INPUT -i ppp0 -p tcp -s 0/0 --sport 80 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp -s 0/0 --sport 443 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp -d 0/0 --dport 80 -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp -d 0/0 --dport 443 -j ACCEPT
## 允許DNS的規則
iptables -A INPUT -i ppp0 -p udp -s 0/0 --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -i ppp0 -p udp -d 0/0 --dport 53 -j ACCEPT
## IP包流量限制?IP packets limit
iptables -A INPUT -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
iptables -A INPUT -i eth0 -p icmp -j DROP
## 允許SSH
iptables -A INPUT -p tcp -s ip1/32 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -s ip2/32 --dport 22 -j ACCEPT
## 其它情況不允許?Anything else not allowed
iptables -A INPUT -i eth0 -j DROP
3、一個包過濾防火牆例項
環境:redhat9 載入了string time等模組
eth0 接外網──ppp0
eth1 接內網──192.168.0.0/24
#!/bin/sh
#
modprobe ipt_MASQUERADE
modprobe ip_conntrack_ftp
modprobe ip_nat_ftp
iptables -F
iptables -t nat -F
iptables -X
iptables -t nat -X
###########################INPUT鍵###################################
iptables -P INPUT DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 110,80,25 -j ACCEPT
iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 139 -j ACCEPT
#允許內網samba,smtp,pop3,連線
iptables -A INPUT -i eth1 -p udp -m multiport --dports 53 -j ACCEPT
#允許dns連線
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
#允許外網vpn連線
iptables -A INPUT -s 192.186.0.0/24 -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp --syn -m connlimit --connlimit-above 15 -j DROP
#為了防止DoS太多連線進來,那麼可以允許最多15個初始連線,超過的丟棄
iptables -A INPUT -s 192.186.0.0/24 -p tcp --syn -m connlimit --connlimit-above 15 -j DROP
#為了防止DoS太多連線進來,那麼可以允許最多15個初始連線,超過的丟棄
iptables -A INPUT -p icmp -m limit --limit 3/s -j LOG --log-level INFO --log-prefix "ICMP packet IN: "
iptables -A INPUT -p icmp -j DROP
#禁止icmp通訊-ping 不通
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE
#內網轉發
iptables -N syn-flood
iptables -A INPUT -p tcp --syn -j syn-flood
iptables -I syn-flood -p tcp -m limit --limit 3/s --limit-burst 6 -j RETURN
iptables -A syn-flood -j REJECT
#防止SYN攻擊 輕量
iptables -P FORWARD DROP
iptables -A FORWARD -p tcp -s 192.168.0.0/24 -m multiport --dports 80,110,21,25,1723 -j ACCEPT
iptables -A FORWARD -p udp -s 192.168.0.0/24 --dport 53 -j ACCEPT
iptables -A FORWARD -p gre -s 192.168.0.0/24 -j ACCEPT
iptables -A FORWARD -p icmp -s 192.168.0.0/24 -j ACCEPT
#允許 vpn客戶走vpn網路連線外網
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -I FORWARD -p udp --dport 53 -m string --string "tencent" -m time --timestart 8:15 --timestop 12:30 --days Mon,Tue,Wed,Thu,Fri,Sat -j DROP
#星期一到星期六的8:00-12:30禁止qq通訊
iptables -I FORWARD -p udp --dport 53 -m string --string "TENCENT" -m time --timestart 8:15 --timestop 12:30 --days Mon,Tue,Wed,Thu,Fri,Sat -j DROP
#星期一到星期六的8:00-12:30禁止qq通訊
iptables -I FORWARD -p udp --dport 53 -m string --string "tencent" -m time --timestart 13:30 --timestop 20:30 --days Mon,Tue,Wed,Thu,Fri,Sat -j DROP
iptables -I FORWARD -p udp --dport 53 -m string --string "TENCENT" -m time --timestart 13:30 --timestop 20:30 --days Mon,Tue,Wed,Thu,Fri,Sat -j DROP
#星期一到星期六的13:30-20:30禁止QQ通訊
iptables -I FORWARD -s 192.168.0.0/24 -m string --string "qq.com" -m time --timestart 8:15 --timestop 12:30 --days Mon,Tue,Wed,Thu,Fri,Sat -j DROP
#星期一到星期六的8:00-12:30禁止qq網頁
iptables -I FORWARD -s 192.168.0.0/24 -m string --string "qq.com" -m time --timestart 13:00 --timestop 20:30 --days Mon,Tue,Wed,Thu,Fri,Sat -j DROP
#星期一到星期六的13:30-20:30禁止QQ網頁
iptables -I FORWARD -s 192.168.0.0/24 -m string --string "ay2000.net" -j DROP
iptables -I FORWARD -d 192.168.0.0/24 -m string --string "寬頻影院" -j DROP
iptables -I FORWARD -s 192.168.0.0/24 -m string --string "色情" -j DROP
iptables -I FORWARD -p tcp --sport 80 -m string --string "廣告" -j DROP
#禁止ay2000.net,寬頻影院,色情,廣告網頁連線 !但中文 不是很理想
iptables -A FORWARD -m ipp2p --edk --kazaa --bit -j DROP
iptables -A FORWARD -p tcp -m ipp2p --ares -j DROP
iptables -A FORWARD -p udp -m ipp2p --kazaa -j DROP
#禁止BT連線
iptables -A FORWARD -p tcp --syn --dport 80 -m connlimit --connlimit-above 15 --connlimit-mask 24 -j DROP
#只允許每組ip同時15個80埠轉發
#######################################################################
sysctl -w net.ipv4.ip_forward=1 &>/dev/null
#開啟轉發
#######################################################################
sysctl -w net.ipv4.tcp_syncookies=1 &>/dev/null
#開啟 syncookie (輕量級預防 DOS 攻擊)
sysctl -w net.ipv4.netfilter.ip_conntrack_tcp_timeout_established=3800 &>/dev/null
#設定預設 TCP 連線痴呆時長為 3800 秒(此選項可以大大降低連線數)
sysctl -w net.ipv4.ip_conntrack_max=300000 &>/dev/null
#設定支援最大連線樹為 30W(這個根據你的記憶體和 iptables 版本來,每個 connection 需要 300 多個位元組)
#######################################################################
iptables -I INPUT -s 192.168.0.50 -j ACCEPT
iptables -I FORWARD -s 192.168.0.50 -j ACCEPT
#192.168.0.50是我的機子,全部放行!
相關推薦
iptables四個表與五個鏈
一、netfilter和iptables說明: 1、 netfilter/iptables IP 資訊包過濾系統是一種功能強大的工具,可用於新增、編輯和除去規則,這些規則是在做資訊包過濾決定時,防火牆所遵循和組成的規則。這些規則儲存在專用的資訊包過濾表中,而
NNER JOIN連接兩個表、三個表、五個表的SQL語句
from span 至少 一個 color pre identity bsp 語句 NNER JOIN連接兩個表、三個表、五個表的SQL語句 2013-04-14 15:13:11來源:西部e網作者: SQL INNER JOIN關鍵字表示在表中存在至少一個匹配時,IN
線性表與13個基本操作的實現
一、巨集定義解釋 ElemType :線性表資料元素資料型別 LIST_INIT_SIZE : 線性表初始資料元素容量 Status :函式返回值(一般替換int型) error :0 INF
多個if與多個else if的情況
形式: if ......if......if......else if......else if......else if...... else 總結: 如果
程式設計師想讓你電腦卡死需要多久呢?黑客:三個按鍵,五個字元
之前小編看過一篇文章,題目是上大學學哪個專業,畢業之後不容易失業。其中排行第一名的就是計算機專業,畢竟現在是資訊時代,會使用電腦等一些軟體也確實是生存的一個優勢,這個專業的人畢業之後很多就是程式設計師。不怕世界上有壞人,就怕壞人有智商。 這句話是很有道理的。不是說程式設計
面向物件分析的三個模型和五個層次
在面向物件分析中,主要由物件模型、動態模型和功能模型組成。物件模型是最基本、最重要、最核心的。 用面向物件方法開發軟體,通常需要建立3種形式的模型,它們分別是描述系統資料結構的物件模型,描述系統控制結構的動態模型和描述系統功能的功能模型。一個典型的軟體系統使用資料結構(物件模型),執行操作(
Spring AOP的八個概念、五個通知型別、AOP的第一種實現方式
CRUD:增刪改查 平安校園的系統開發記錄 裝置管理、平安校園、會員註冊三個模組 問題提出:如何統計統計模組的使用頻率? 如何統計各個模組中的各個功能的使頻率 問題提出方案:日誌統計分析--- ---------------------人員ID IP 操作時間模組 功能
PHP三個等號與兩個等號的區別
在PHP中兩個變數間比較相等可以使用兩個等號或者三個等號,這兩種方式有什麼區別呢? 用兩個等號時,只要比較的兩個變數的值相同,輸出true,否則輸出false。 用三個等號時,除了兩個變數的值相同外,還必須這兩個變數的型別相同,才能輸出true,否則輸出false。 例如: $v1 = "1"; $v2 =
Hibernate學習筆記(四)—— 表與表的關係
一、一對多|多對一 1.1 關係表達 1.1.1 表中的表達 建表原則:在多的一方建立外來鍵指向一的一方的主鍵。 1.1.2 實體中的表達 【客戶實體】 public class Customer { private Long cus
js ==與===區別(兩個等號與三個等號) 《轉》
== equality 等同,=== identity 恆等。 ==, 兩邊值型別不同的時候,要先進行型別轉換,再比較。 ===,不做型別轉換,型別不同的一定不等。 下面分別說明: 先說 ===,這個比較簡單。下面的規則用來判斷兩個值是否===相等: 1、如果型別不同,就[不相等] 2、如果兩個都是數值
ACCESS 使用UNION 關聯多個表或多個已有的查詢
Office XP 7 out of 8 rated this helpful - Rate this topic This article may contain URLs that were valid when originally published, but now link to s
iptables四個表五條鏈
在啟用了iptables web伺服器上,流量高的時候經常會出現下面的錯誤: ip_conntrack: table full, dropping packet 這個問題的原因是由於web伺服器收到了大量的連線,在啟用了iptables的情況下,iptables會把所有的連線都做連結跟蹤處理,這樣iptabl
iptables的四個表5個鏈
一、netfilter和iptables說明: 1、 netfilter/iptables IP 資訊包過濾系統是一種功能強大的工具,可用於新增、編輯和除去規則,這些規則是在做資訊包過濾決定時,防火牆所遵循和組成的規則。這些規則儲存在專用的資訊包過濾表中,而
(LeetCode)兩個鏈表的第一個公共節點
struct link note lee mono lengthb borde san length LeetCode上面的題目例如以下: Write a program to find the node at which the intersection of t
兩個鏈表的第一個公共結點
common color -c span lis class 指向 node 一個 題目 輸入兩個鏈表,找出它們的第一個公共結點。 分析 首先分別遍歷list1和list2,得到兩個鏈表的長度count1和count2,同時,判斷兩個鏈表的尾指針是否相同,如果不
27、輸入兩個單調遞增的鏈表,輸出兩個鏈表合成後的鏈表,當然我們需要合成後的鏈表滿足單調不減規則。
-s st2 image code solution 兩個 cnblogs 思路 div 輸入兩個單調遞增的鏈表,輸出兩個鏈表合成後的鏈表,當然我們需要合成後的鏈表滿足單調不減規則。 思路:同歸並算法 本題: 1 public class Solution {
劍指offer---兩個鏈表的第一個公共結點
ext node col logs pan color while bus get /* struct ListNode { int val; struct ListNode *next; ListNode(int x) :
2.5給定兩個用鏈表表示的整數,每個結點包含一個數位。這些數位是反向存放的,也就是個位排在鏈表首部。編寫函數對這兩個整數求和,並用鏈表形式返回結果。
直接 logs next 末尾 做的 nbsp before != 結果 其實仔細想想是挺簡單的,我們要做的只是記得進位。 LinkedListNode addLists(LinkedListNode l1, LinkedListNode l2, int carry) /
Python練習筆記——利用遞歸求年齡,第五個比第四個大2歲...
div turn ron 練習 post 個人 print log clas 現在有五個人, 第五個人比第四個人大兩歲,18 第四個人比第三個人大兩歲,16 第三個人比第二個人大兩歲,14 第二個人比第一個人大兩歲,12 第一個人現10歲,
兩個鏈表的第一個公共節點
pre pan spa scribe ++ || listnode desc des 題目描述 輸入兩個鏈表,找出它們的第一個公共結點。 思路:先分別求出兩個鏈表的長度m,n。長的那個鏈表先走m-n步(假設m>=n),然後同時走,碰到相同節點即為第一個公