❶ linux遠程桌面使用客戶端硬碟介面
1、在ubuntu下搜索Remmina,點擊Remmina遠程桌面客戶端。
2、運行Remmina之羨棗族後點擊+號添加一台伺服器,在遠程桌面設定中。
3、設置名稱:可以隨便輸入伺服器IP地址。
❷ linux kernel 文件系統編程介面
進程讀寫文件之前需要 打開文件 ,得到 文件描述符 ,然後 通過文件描述符讀寫文件 .
內核提供了兩個打開文件的系統調用 open 和 openat .
打開文件的主要步驟如下:
(1)需要 在父目錄的數據中查找文件對應的目錄項 , 從目錄項得到索引節點的編號,然後在內存中創建索引節點的副本 .因為各種文件系統類型的物理結構不同,所以需要提供索引節點操作集合的 lookup 方法和文件操作集合的 open 方法.
(2)需要分配文件的一個打開實例-- file 結構體,關聯到文件的索引節點.
(3)在進程的打開文件表中 分配一個文件描述符 , 把文件描述符和打開實例的映射添加到進程的打開文件表 中.
進程可通過使用系統調用 close 關閉文件.
系統調用close的執行流程如下:
(1)解除打開文件表和file實例的關聯.
(2)在close_on_exec點陣圖中清楚文件描述符對應的位.
(3)釋放文件描述符,在文件描述符點陣圖中清除文件描述符對應的位.
(4)調用函數fput釋放file實例:把引用計數減1,如果引用計數是0,那麼把file實例添加到鏈表delayed_fput_list中,然後調用延遲工作項delayed_fput_work.
延遲工作項delayed_fput_work的處理函數是flush_delayed_fput,遍歷鏈表delayed_fput_list,針對每個file實例,調用函數__fput來加以釋放.
創建不同類型的文件,需要使用不同的命令.
(1) 普通文件 :touch FILE ,這條命令本來用來更新文件的訪問時間和修改時間,如果文件不存在,創建文件.
(2) 目錄 :mkdir DIRECTORY .
(3) 符號鏈接(軟鏈接) :ln -s TARGET LINK_NAME 或ln --symbolic TARGET LINK_NAME .
(4) 字元或塊設備文件 :mknod NAME TYPE [MAJOR MINOR] .
(5) 命名管道 :mkpipe NAME .
(6) 硬連接 :命令"ln TARGETLINK_NAME ".給已經存在的文件增加新的名稱,文件的索引節點有一個硬鏈接計數,如果文件有n個名稱,那麼硬鏈接計數是n.
創建文件需要在文件系統中 分配一個索引節點 ,然後 在父目錄的數據中增加一個目錄項來保存文件的名稱和索引節點編號 .
刪除文件的命令如下:
(1)刪除任何類型文件:unlink FILE .
(2)rm FILE ,默認不刪除目錄,如果使用"-r""-R"或"-recursive",可以刪除目錄和目錄的內容.
(3)刪除目錄:rmdir DICTIONARY .
內核提供了unlink,unlinkat用來刪除文件的名稱,如果文件的硬鏈接計數變成0,並且沒有進程打開這個文件,那麼刪除文件.提供了rmdir刪除目錄.
刪除文件需要從父目錄的數據中刪除文件對應的目錄項, 把文件的索引節點的硬鏈接計數減1(一個文件可以有多個名稱,Linux把文件名稱稱為硬鏈接),如果索引節點的硬鏈接計數變成0,那麼釋放索引節點 .因為各種文件系統的物理結構不同,所以需要提供索引節點操作集合的 unlink 方法.
設置文件許可權的命令如下:
(1)chmod [OPTION]... MODE[, MODE]... FILE...
mode : 許可權設定字串,格式[ugoa...][[+-=][rwxX]...][,...]
其中:
(2)chmod [OPTION]... OCTAL-MODE FILE...
參數OCTAL-MODE是八進制數值.
系統調用chmod負責修改文件許可權.
修改文件許可權需要修改文件的索引節點的文件模式欄位,文件模式欄位包含文件類型和訪問許可權.因為各種文件系統類型的索引節點不同,所以需要提供索引節點操作集合的 setattr 方法.
訪問外部存儲設備的速度很慢,為了避免每次讀寫文件時訪問外部存儲設備, 文件系統模塊為每個文件在內存中創建一個緩存 ,因為 緩存的單位是頁 ,所以稱為 頁緩存 .
(1) 索引節點的成員i_mapping 指向地址空間結構體(address_space).進程在打開文件的時候, 文件打開實例(file結構體)的成員f_mapping 也會指向文件的地址空間.
(2)每個文件有一個地址空間結構體 address_space ,成員 page_tree 的類型是結構體radix_tree_root:成員 gfp_mask是分配內存頁的掩碼,成員rnode指向基數樹的根節點 .
(3)使用基數樹管理頁緩存,把文件的頁索引映射到內存頁的頁描述符.
每個文件都有一個地址空間結構體address_space,用來建立數據緩存(在內存中為某種數據創建的緩存)和數據來源(即存儲設備)之間的關聯.結構體address_space如下:
地址空間操作結合address_space_operations的主要成員如下:
頁緩存的常用操作函數如下:
(1)函數find_get_page根據文件的頁索引在頁緩存中查找內存頁.
(2)函數find_or_create_page根據文件的頁索引在頁緩存中查找內存頁,如果沒有找到內存頁,那麼分配一個內存頁,然後添加到頁緩存中.
(3)函數add_to_page_cache_lru把一個內存頁添加到頁緩存和LRU鏈表中.
(4)函數delete_from_page_cache從頁緩存中刪除一個內存頁.
進程讀文件的方式有3種:
(1)調用內核提供的 讀文件的系統調用 .
(2)調用glibc庫封裝的讀文件的 標准I/O流函數 .
(3)創建基於文件的內存映射,把 文件的一個區間映射到進程的虛擬地址空間,然後直接讀內存 .
第2種方式在用戶空間創建了緩沖區,能減少系統調用的次數,提高性能.第3種方式可以避免系統調用,性能最高.
讀文件的主要步驟如下:
(1)調用具體文件系統類型提供的文件操作集合的read和read_iter方法來讀文件.
(2) read或read_iter方法根據頁索引在文件的頁緩存中查找頁,如果沒有找到,那麼調用具體文件系統類型提供的地址空間集合的readpage方法來從存儲設備讀取文件頁到內存中 .
為了提高讀文件的速度,從存儲設備讀取文件頁到內存中的時候,除了讀取請求的文件頁,還會預讀後面的文件頁.如果進程按順序讀文件,預讀文件頁可以提高讀文件的速度;如果進程隨機讀文件,預讀文件頁對提高讀文件的速度幫助不大.
進程寫文件的方式有3種:
(1)調用內核提供的 寫文件的系統調用 .
(2)調用glibc庫封裝的寫文件的 標准I/O流函數 .
(3)創建基於文件的內存映射,把 文件的一個區間映射到進程的虛擬空間,然後直接寫內存 .
第2種方式在用戶空間創建了緩沖區,能夠減少系統調用的次數,提高性能.第3種方式可以避免系統調用,性能最高.
寫文件的主要步驟如下:
(1)調用具體文件系統類型提供的文件操作集合的write或write_iter方法來寫文件.
(2)write或write_iter方法調用文件的地址空間操作集合的 write_begin 方法, 在頁緩存查找頁,如果頁不存在就分配頁;然後把數據從用戶緩沖區復制到頁緩存的頁中 ;最後調用文件的地址空間操作集合的 write_end 方法.
進程寫文件時,內核的文件系統模塊把數據寫到文件的頁緩存,沒有立即寫回到存儲設備.文件系統模塊會定期把臟頁寫回到存儲設備,進程也可以調用系統調用把臟頁強制寫回到存儲設備.
管理員可以執行命令"sync",把內存中所有修改過的文件元數據和文件數據寫回到存儲設備.
內核提供了 sync , syncfs , fsync , fdatasync , sync_file_range 等系統調用用於文件寫回.
把文件寫回到存儲設備的時機如下:
(1)周期回寫.
(2)當臟頁的數量達到限制的時候,強制回寫.
(3)進程調用sync和syncfs等系統調用.
對於類似內存的塊設備,例如NVDIMM設備,不需要把文件從存儲設備復制到頁緩存.DAX繞過頁緩存,直接訪問存儲設備,對於基於文件的內存映射,直接把存儲設備映射到進程的虛擬地址空間.
調用系統調用mmap創建基於文件的內存映射,把文件的一個區間映射到進程的虛擬地址空間,這會調用具體文件系統類型提供的文件操作集合的mmap方法.mmap方法針對設置了標志位S_DAX的索引節點,處理方法如下:
(1)給虛擬內存區域設置標志位VM_MIXEDMAP和VM_HUGEPAGE.
(2)設置虛擬內存操作集合,提供fault,huge_fault,page_mkwrite和pfn_mkwrite方法.
❸ Linux 內核驅動介面詳解
寫作本文檔的目的,是為了解釋為什麼Linux既沒有二進制內核介面,也沒有穩定 的內核介面。這里所說的內核介面,是指內核里的介面,而不是內核和用戶空間 的介面。內核到用戶空間的介面,是提供給應用程序使用的系統調用,系統調用 在 歷史 上幾乎沒有過變化,將來也不會有變化。我有一些老應用程序是在0.9版本 或者更早版本的內核上編譯的,在使用2.6版本內核的Linux發布上依然用得很好 。用戶和應用程序作者可以將這個介面看成是穩定的。
你也許以為自己想要穩定的內核介面,但是你不清楚你要的實際上不是它。你需 要的其實是穩定的驅動程序,而你只有將驅動程序放到公版內核的源代碼樹里, 才有可能達到這個目的。而且這樣做還有很多其它好處,正是因為這些好處使得 Linux能成為強壯,穩定,成熟的操作系統,這也是你最開始選擇Linux的原因。
只有那些寫驅動程序的「怪人」才會擔心內核介面的改變,對廣大用戶來說,既 看不到內核介面,也不需要去關心它。
既然只談技術問題,我們就有了下面兩個主題:二進制內核介面和穩定的內核源 代碼介面。這兩個問題是互相關聯的,讓我們先解決掉二進制介面的問題。
假如我們有一個穩定的內核源代碼介面,那麼自然而然的,我們就擁有了穩定的 二進制介面,是這樣的嗎?錯。讓我們看看關於Linux內核的幾點事實:
對於一個特定的內核,滿足這些條件並不難,使用同一個C編譯器和同樣的內核配 置選項來編譯驅動程序模塊就可以了。這對於給一個特定Linux發布的特定版本提 供驅動程序,是完全可以滿足需求的。但是如果你要給不同發布的不同版本都發 布一個驅動程序,就需要在每個發布上用不同的內核設置參數都編譯一次內核, 這簡直跟噩夢一樣。而且還要注意到,每個Linux發布還提供不同的Linux內核, 這些內核都針對不同的硬體類型進行了優化(有很多種不同的處理器,還有不同 的內核設置選項)。所以每發布一次驅動程序,都需要提供很多不同版本的內核 模塊。
相信我,如果你真的要採取這種發布方式,一定會慢慢瘋掉,我很久以前就有過 深刻的教訓…
如果有人不將他的內核驅動程序,放入公版內核的源代碼樹,而又想讓驅動程序 一直保持在最新的內核中可用,那麼這個話題將會變得沒完沒了。 內核開發是持續而且快節奏的,從來都不會慢下來。內核開發人員在當前介面中 找到bug,或者找到更好的實現方式。一旦發現這些,他們就很快會去修改當前的 介面。修改介面意味著,函數名可能會改變,結構體可能被擴充或者刪減,函數 的參數也可能發生改變。一旦介面被修改,內核中使用這些介面的地方需要同時 修正,這樣才能保證所有的東西繼續工作。
舉一個例子,內核的USB驅動程序介面在USB子系統的整個生命周期中,至少經歷 了三次重寫。這些重寫解決以下問題:
這和一些封閉源代碼的操作系統形成鮮明的對比,在那些操作系統上,不得不額 外的維護舊的USB介面。這導致了一個可能性,新的開發者依然會不小心使用舊的 介面,以不恰當的方式編寫代碼,進而影響到操作系統的穩定性。 在上面的例子中,所有的開發者都同意這些重要的改動,在這樣的情況下修改代 價很低。如果Linux保持一個穩定的內核源代碼介面,那麼就得創建一個新的介面 ;舊的,有問題的介面必須一直維護,給Linux USB開發者帶來額外的工作。既然 所有的Linux USB驅動的作者都是利用自己的時間工作,那麼要求他們去做毫無意 義的免費額外工作,是不可能的。 安全問題對Linux來說十分重要。一個安全問題被發現,就會在短時間內得到修 正。在很多情況下,這將導致Linux內核中的一些介面被重寫,以從根本上避免安 全問題。一旦介面被重寫,所有使用這些介面的驅動程序,必須同時得到修正, 以確定安全問題已經得到修復並且不可能在未來還有同樣的安全問題。如果內核 內部介面不允許改變,那麼就不可能修復這樣的安全問題,也不可能確認這樣的 安全問題以後不會發生。 開發者一直在清理內核介面。如果一個介面沒有人在使用了,它就會被刪除。這 樣可以確保內核盡可能的小,而且所有潛在的介面都會得到盡可能完整的測試 (沒有人使用的介面是不可能得到良好的測試的)。
如果你寫了一個Linux內核驅動,但是它還不在Linux源代碼樹里,作為一個開發 者,你應該怎麼做?為每個發布的每個版本提供一個二進制驅動,那簡直是一個 噩夢,要跟上永遠處於變化之中的內核介面,也是一件辛苦活。 很簡單,讓你的驅動進入內核源代碼樹(要記得我們在談論的是以GPL許可發行 的驅動,如果你的代碼不符合GPL,那麼祝你好運,你只能自己解決這個問題了, 你這個吸血鬼把Andrew和Linus對吸血鬼的定義鏈接到這里>)。當你的代碼加入 公版內核源代碼樹之後,如果一個內核介面改變,你的驅動會直接被修改介面的 那個人修改。保證你的驅動永遠都可以編譯通過,並且一直工作,你幾乎不需要 做什麼事情。
把驅動放到內核源代碼樹里會有很多的好處:
❹ 為linux網路介面配置多個ip地址
假設需要配置的介面是eth0
ifconfig eth0:1 192.168.2.2 netmask 255.255.255.0 up
使用ip addr add命令添加多ip
ip addr add 192.168.2.2 dev eth0
❺ Linux用shell創建子介面
#!/bin/sh
N=1
number=$1
if [ $number -lt $N ] ; then
exit 0
fi
while true
do
if [ $N -gt $number ] ; then
break;
fi
### 假設准備掛在的網卡為eth0 網路為C類 #####
ifconfig -s eth0:${N} 192.168.1.${N}/24
done
#################
## 這樣就可以實現多少個介面都沒有關系了
#################
❻ Linux常用網路配置命令
一、查看網路配置
確保網路配置的正確性及網路連接的暢通是Linux系統作為伺服器應用的基礎,查看及測試網路配置是管理Linux網路服務的第一步。
1.ifconfig——查看網路配置
1) 查看所有活動網路介面的信息
執行 ifconfig 或ip addr或ip a命令,都可以顯示當前主機中已啟用(活動)的網路介面信息。、
2) 查看指定網路介面信息
格式:ifconfig 網路介面名
可以通過TX、RX等信息了解到通過該網路介面發送和接收的數據包個數,流量等跟多屬性。
2.hostname命令
在Linux系統中,相當一部分網路服務都會通過主機名來識別本機,如果主機名配置不當,可能會導致程序功能出現故障。
1) 查看主機名
使用hostname命令就可以查看當前主機的主機名,不添加任何選項參數。
2) 臨時更改主機名
hostname NewName
註:這種方法只是臨時的更改主機名,重啟後將失效。
3) 永久更改主機名
a. 修改配置文件
RHEL6和7的配置文件存放路徑不相同,修改配置文件中的主機名,重啟就可永久更改主機名。
RHEL6主機名配置文件路徑為:/etc/sysconfig/network
RHEL7主機名配置文件路徑為:/etc/hostname
示例
b. 使用命令修改(這種方法只適用於RHEL7或者CentOS7之後)
命令格式:
使用該命令更改後,更改後的主機名就自動寫入了配置文件中,所以可以永久更改主機名,其實就是修改了配置文件。
3.route命令
直接執行route命令可以查看當前主機中的路由表信息,若結合「-n」選項使用,可以將路由記錄中的地址顯示為數字形式,這可以跳過解析主機名的過程,在路由表條目較多的情況下能夠加快執行速度。
Destination列對應的是目標網段的地址,Gateway列對應的是嚇一跳路由器的地址,Iface列對應的是發送數據的網路介面。當目標網段為「default」是,表示此行是默認網關記錄,當嚇一跳為「*」是,表示目標網段是與本機直接相連的。
4.netstat命令——查看系統的網路連接狀態等
netstat命令是了解網路狀態及排除網路服務故障的有效工具。
常用選項:
-a:顯示所有活動連接(包括監聽、非監聽狀態的服務埠)
-n:以數字形式顯示
-p:顯示相關的進程信息
-t:查看 TCP 協議相關信息
-u:查看UDP協議相關信息
-r:顯示路由表信息
-l:顯示處於監聽(listening)狀態的網路連接及埠信息
通常使用「-anput」組合選項,結合管道使用「grep」命令,來查看一些服務的埠是否開啟。
示例:
Tcp21為ftp服務的埠
二、測試網路連接
1.ping命令——測試網路連通性
常用選項:
-c<完成次數>:設置完成要求回應的次數
-i<間隔秒數>:指定收發信息的間隔時間
-q:不顯示指令執行過程,開頭和結尾的相關信息除外
-s<數據包大小>:設置數據包的大小
-t<存活數值>:設置存活數值TTL的大小
-v:詳細顯示指令的執行過程
若返回「Destination Host Unreachable」的反饋信息,則表示目標主機不可達,可能目標地址不存在或主機已關閉;返回「Network is unreachable」的反饋信息,則表示沒有可用的路由記錄(如默認網關),無法到達目標主機所在的網路;返回「Request timeout」的反饋信息,表示與目標主機間的連接超時(數據包緩慢或丟失),若有嚴格的防火牆限制,也可能返回此信息。
2.traceroute命令——跟蹤數據包的路由途徑
使用traceroute命令可以測試從當前主機到目的主機之間經過的網路節點,並顯示各中間結點的連接狀態(響應時間)。對於無法響應的節點,連接狀態將顯示為「*」。
示例:traceroute IP_ADDR
在網路測試與排錯的過程中,通常會先使用ping命令測試與主機的網路連接,如果發現網路有故障,再使用traceroute命令跟蹤查看是在哪個中間結點存在故障。
3.nslookup命令——測試DNS域名解析
nslookup是用來測試(DNS)域名解析的專用工具。(DNS服務後面再詳細講解,通俗的說就是將域名解析為ip地址的一個服務)
示例:nslookup www..com
若成功反饋要查詢域名的IP地址,則表示域名解析沒有問題;若出現「...... no servers could be reached」的信息,表示不能連接到指定的DNS伺服器;若出現「...... cant』t find xxx.yyy.zzz:NXDOMAIN」的信息,表示要查詢的域名不存在。
三、設置網路地址參數
設置網路參數的方法:
• 臨時配置 —— 使用命令調整網路參數簡單、快速,可直接修改運行中的網路參數
一般只適合在調試網路的過程中使用
系統重啟以後,所做的修改將會失效
• 永久配置 —— 通過配置文件修改網路參數修改各項網路參數的配置文件
適合對伺服器設置固定參數時使用
需要重載網路服務或者重啟以後才會生效
1.臨時配置——使用網路配置命令(註:RHEL6中網路介面的名稱為eth,RHEL7中為ens)
1)使用ifconfig命令修改網卡的地址、狀態
ifconfig命令不僅可以用於查看網卡配置,還可以修改網卡的ip地址,子網掩碼,也可以綁定網路介面、激活或停用網路介面
a. 修改網卡的ip地址(臨時修改)
命令格式:
示例:
b. 禁用或者重新激活網卡
命令格式:
示例:
c. 設置虛擬網路介面(相當於一塊網卡配置多個IP地址)
命令格式:
示例:
可以根據需要添加更多的虛擬介面,如「eth0:1」「eth0:2」等
2)使用route命令添加、刪除靜態路由記錄
• 刪除路由表中的默認網關記錄命令格式:route del default gw IP地址
• 向路由表中添加默認網關記錄命令格式:route add default gw IP地址
• 添加到指定網段的路由記錄命令格式:route add -net 網段地址 gw IP地址
• 刪除到指定網段的路由記錄命令格式:router del -net 網段地址
2.永久配置——修改網路配置文件
1)網路介面配置文件
網路介面的配置文件默認位於目錄「/etc/sysconfig/network-scripts/」中,文件名格式為:「ifcfg-XXX」,其中「XXX」是網路介面的名稱。例如:RHEL6中網卡eth0的配置文件是「ifcfg-eth0」,而RHEL7中網卡ens33的配置文件是「ifcfg-ens33」。
在網卡的配置文件中,可以看到靜態IP地址的部分內容如下圖所示:
上述個配置項的含義及作用:(圖示為RHEL6中的配置文件,7中也差不多,換湯不換葯,修改的都差不多)
• DEVICE:設置網路介面的名稱ONBOOT:設置網路介面是否在Linux系統啟動時激活BOOTPROTO:設置網路介面的配置方式,值為static時表示使用靜態ip地址,為dhcp時表示通過dhcp的方式動態獲取ip地址IPADDR:設置網路介面的ip地址NETMASK:設置網路介面的子網掩碼GATEWAY:設置網路介面的默認網關地址2)重啟 network 網路服務
當修改了網路介面的配置文件以後,若要使新的配置生效,可以重啟network服務或者重啟主機或者禁用、啟用網路介面。
示例:
• RHEL6中重啟network服務:service network restartRHEL7中重啟network服務:systemctl restart network註:這是我在做實驗時候的一個經驗:RHEL6修改完網卡配置重啟後,ip地址仍然沒有改過來,這時候我們經常會刪除「/etc/udev/rules.d/70-persistent-net.rules」這個文件。RHEL7不用管,RHEL7特別好改,RHEL6改的時候特別難受。(個人提示,不求認同)
3)域名解析配置文件
a.指定為本機提供DNS解析的伺服器地址
/etc/resolv.conf文件中記錄了本機默認使用的DNS伺服器的地址信息,對該文件所做的修改將會立刻生效。Linux系統中最多可以指定3個(第3個以後將被忽略)不同的DNS伺服器地址,優先使用第1個DNS伺服器。
示例:
其中「search localdomain」用來設置默認的搜索域(域名後綴)。例如,當訪問主機「localhost」時,就相當於訪問「localhost.localdomain」。
b.本地主機映射文件
/etc/hosts文件中記錄著一份主機名與ip地址的映射關系表,一般用來保存經常訪問的主機信息。當訪問一個未知的域名時,先查找該文件中是否有相應的映射記錄,如果找不到在去向DNS伺服器查詢。
hosts 文件和 DNS 伺服器的比較
• 默認情況下,系統首先從 hosts 文件查找解析記錄hosts 文件只對當前的主機有效hosts 文件可減少 DNS 查詢過程,從而加快訪問速度
❼ Linux網路子介面配置
方式一:臨時方式(重啟則失效):
添加網路子介面:
ifconfig eth0:1 10.1.77.87 netmask 255.255.255.0
除子介面:
ifconfig eth0:1 10.1.77.87 netmask 255.255.255.0 down
註:在/etc/rc.local中配置該命令可以每次重啟PC時均執行次命令配置子網路
方式二:
修改配置文件,永久生效
❽ Linux網路相關配置
這里說的網路配置主要是centos環境
centOS系統,在/etc/sysconfig/network-scripts目錄下找到當前機器的埠文件,文件名通常是ifcfg-網路連接名。
vim 打開編輯,添加修改分配模式,IP地址,掩碼,DNS等內容,完整的示例如下:
修改完成後,執行systemctl restart network重啟網卡生效。
Ubuntu20配置值靜態ip,需要修改/etc/netplan下面找到一個yaml文件,文件名帶network的,1-network-manager-all.yaml,這里給出一個配置示例:
(這里用ifconfig或者ip addr命令先看一下自己的網卡編號,我的編號是enpls0)
修改完成後,輸入命令:sudo netplan apply使得配置生效
配置完成後ping一下其他機器或者外網網址看一下網路是否通了,配置還是沒生效可以嘗試重啟機器(重啟不影響的情況下)。
查看埠信息
netstat -tunlp |grep 埠號 查看指定的埠號的進程情況,如查看8000埠的情況,netstat -tunlp |grep 8000
nmap 127.0.0.1 查看本機開放的埠,會掃描所有埠。
lsof -i:埠號查看埠所在進程-9
啟動防火牆
systemctl start firewalld
禁用防火牆
systemctl stop firewalld
設置/禁止開機啟動
systemctl enable/disable firewalld
重啟防火牆
firewall-cmd --reload
查看狀態
systemctl status firewalld / firewalld-cmd --state
查看版本
firewall-cmd --version
查看幫助
firewall-cmd --help
查看區域信息
firewall-cmd --get-active-zones
查看指定介面所屬區域信息
firewall-cmd --get-zone-of-interface=eth0
拒絕所有包
firewall-cmd --panic-on
取消拒絕狀態
firewall-cmd --panic-off
查看是否拒絕
firewall-cmd --query-panicpor
將介面添加到區域(默認介面都在public)
firewall-cmd --zone=public --add-interface=eth0(永久生效再加上 --permanent 然後reload防火牆)
設置默認介面區域
firewall-cmd --set-default-zone=public(立即生效,無需重啟)
更新防火牆規則
firewall-cmd --reload或firewall-cmd --complete-reload(兩者的區別就是第一個無需斷開連接,就是firewalld特性之一動態添加規則,第二個需要斷開連接,類似重啟服務)
查看指定區域所有打開的埠
firewall-cmd --list-port
firewall-cmd --zone=public --list-ports
在指定區域打開埠(打開後需要重啟防火牆生效)
firewall-cmd --zone=public --add-port=80/tcp(永久生效再加上 --permanent)
參考網址: https://jingyan..com/article/20b68a88943059796cec622e.html
❾ linux為什麼添加子介面後不能下載軟體
linux為什麼添加子介面後不能下載軟體?
答案如下:linux為什麼添加子介面後不能下載軟體是因為沒有借口所以不能下載
❿ 如何在Linux內核里增加一個系統調用
一、Linux0.11下添加系統調用:x0dx0ax0dx0a我在bochs2.2.1中對linux0.11內核添加了一個新的系統調用,步驟如下: x0dx0a1./usr/src/linux/include/unistd.h中添加:#define __NR_mytest 87 x0dx0a然後在下面聲明函數原型:int mytest(); x0dx0a2./usr/src/linux/include/linux/sys.h中添加:extern int sys_mytest(); x0dx0a然後在sys_call_table中最後加上sys_mytest; x0dx0a3.在/usr/src/linux/kernel/sys.c中添加函數實現如下: x0dx0aint sys_mytest(){ x0dx0aprintk("This is a test!"); x0dx0areturn 123; x0dx0a} x0dx0a4.在/usr/src/linux/kernel/system_call.s中對系統調用號加1(原來是86改成了87) x0dx0a5.然後到/usr/src/linux目錄下編譯內核make clean; make Image x0dx0a6. cp /usr/src/linux/include/unistd.h /usr/include/unistd.h x0dx0a7. reset bochs x0dx0a8. 在/usr/root中生成test.c文件如下: x0dx0a#define __LIBRARY__ x0dx0a#include