linux程序埠
① linux開啟80埠3306埠的方法是什麼
防火牆藉由監測所有的封包並找出不符規則的內容,可以防範電腦蠕蟲或是木馬程序的快速蔓延。Linux下在防火牆中開啟80埠、3306埠的方法,需要的朋友可以參考下
具體介紹
vi /etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT(允許80埠通過防火牆)
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允許3306埠通過防火牆)
特別提示:很多網友把這兩條規則添加到防火牆配置的最後一行,導致防火牆啟動失敗,正確的應該是添加到默認的22埠這條規則的下面
添加好之後防火牆規則如下所示:
復制代碼代碼如下:
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
-A INPUT -j REJECT –reject-with icmp-host-prohibited
-A FORWARD -j REJECT –reject-with icmp-host-prohibited
COMMIT
/etc/init.d/iptables restart
#最後重啟防火牆使配置生效
補充閱讀:防火牆主要使用技巧
一、所有的防火牆文件規則必須更改。
盡管這種方法聽起來很容易,但是由於防火牆沒有內置的變動管理流程,因此文件更改對於許多企業來說都不是最佳的實踐方法。如果防火牆管理員因為突發情況或者一些其他形式的業務中斷做出更改,那麼他撞到槍口上的可能性就會比較大。但是如果這種更改抵消了之前的協議更改,會導致宕機嗎?這是一個相當高發的狀況。
防火牆管理產品的中央控制台能全面可視所有的防火牆規則基礎,因此團隊的所有成員都必須達成共識,觀察誰進行了何種更改。這樣就能及時發現並修理故障,讓整個協議管理更加簡單和高效。
二、以最小的許可權安裝所有的訪問規則。
另一個常見的安全問題是許可權過度的規則設置。防火牆規則是由三個域構成的:即源(IP地址),目的地(網路/子網路)和服務(應用軟體或者其他目的地)。為了確保每個用戶都有足夠的埠來訪問他們所需的系統,常用方法是在一個或者更多域內指定打來那個的目標對象。當你出於業務持續性的需要允許大范圍的IP地址來訪問大型企業的網路,這些規則就會變得許可權過度釋放,因此就會增加不安全因素。服務域的規則是開放65535個TCP埠的ANY。防火牆管理員真的就意味著為黑客開放了65535個攻擊矢量?
三、根據法規協議和更改需求來校驗每項防火牆的更改。
在防火牆操作中,日常工作都是以尋找問題,修正問題和安裝新系統為中心的。在安裝最新防火牆規則來解決問題,應用新產品和業務部門的過程中,我們經常會遺忘防火牆也是企業安全協議的物理執行者。每項規則都應該重新審核來確保它能符合安全協議和任何法規協議的內容和精神,而不僅是一篇法律條文。
四、當服務過期後從防火牆規則中刪除無用的規則。
② Linux下埠如何分配
我們知道建立一個socket連接進行網路通訊時需要四個元素client_ip:client_port<----->server_ip:server_port,socket綁定一個埠號用於標識進程。我一直好奇在linux平台上運行時進程的埠如何分配的?如何才能避免埠佔用沖突?
要想了解這些答案需要先了解Linux下埠范圍多少?如何修改埠范圍?一個進程的埠如何分配的?最後了解linux系統下埠如何分配的?
1)查看埠范圍:sysctl -a | grep range
2)修改埠范圍:sysctl.conf
vi /etc/sysctl.conf
net.ipv4.ip_local_port_range=32788 60000
配置立即生效:sysctl -p
另外,埠范圍不要超過1024 65535,1024以下系統使用,65535以上設置會提示失敗。
程序的埠分配分為固定分配和自動分配兩種。一套系統中固定埠是要進行規劃的,比如ftp的埠為10021(控制連接時服務端的),控制連接時客戶端的埠就可以隨機分配。ftp數據連接如果在被動模式下服務端和客戶端的埠都可以隨機分配,如果在主動模式下,服務端的埠可以固定分配,客戶端的埠隨機分配。
固定分配,一般在服務端的進程啟動時分配埠,用於創建socket進行監聽客戶端,如ftp配置文件中的listen_port=10021,http默認的是80,snmp管理的 trap埠是162和snmp agent埠是161。
自動分配,創建進程即建立socket用於通訊,比如ftp服務端的數據連接進程,會從linux sysctl.conf定義的埠范圍,自動來分配埠,調用bind進行埠綁定。但有時候不進行綁定埠也能正常工作,這是因為協議棧對沒有埠綁定的socket進行了自動綁定。每次調用第4層協議的sendmsg成員函數時,會進行埠號的檢查,如果沒有綁定就調用協議的成員函數get_port進行自動綁定。
③ linux查看埠佔用的方法 linux查看哪個埠佔用
使用lsof命令:lsof -i :port_number |grep (LISTEN);-i是用來查找和網路相關的文件,:號是必須的,它是標志你查找的是一個埠。port_number就是你要查找的埠號,譬如你要查找是否有程序佔用了oracle的監聽埠1521,就可以使用lsof -i :1521 |grep (LISTEN)。如果有程序已經佔用了,那麼下面列印的第二個欄位就是該程序的進程id,第一個欄位是進程的名字。
④ linux常用埠號(1)
1.FTP:文件傳輸協議
協議名:FTP
軟體名:vsftpd
FTP埠:控制埠 21/TCP 數據埠:20/TCP
FTP默認埠號為21/tcp
TFTP 默認埠號為69/UDP
2.SSH (安全登錄),SCP(文件傳輸),埠號重定向,默認的埠號為22/TCP
SSH是少數被許可穿越防火牆的協議之一。通常的做法是不限制出站的SSH連接,而入站的SSH連接通常會限制到一台或者少數幾台伺服器上。
3.Telnet使用23埠:Telnet是一種遠程登錄的埠,用戶可以以自己的身份遠程連接到計算機上,通過這種埠可以提供一種基於DOS模式下的通信服務。
4.NFS(網路文件系統):讓網路上的不同Linux/UNIX系統及其實現文件共享
NFS本身只是一種文件系統,沒有提供文件傳輸的功能,但卻能讓我們文件共享,原因在於NFS使用RPC服務,用到NFS的地方需要啟動RPC服務,無論是NFS客戶端還是服務端。
NFS和RPC的關系:NFS是一個文件系統,負責管理分享的目錄,RPC負責文件的傳遞。
NFS啟動時至少有RPC.NFSD和RPC.mountd,2個daemon
rpc.nfsd主要管理客戶機登錄NFS伺服器時,判斷客戶機是否能登錄,和客戶機ID信息。
rpc.mountd主要管理nfs的文件系統,當客戶機順利登錄NFS伺服器時,會去讀/etc/exports文件中的配置,然後去對比客戶機的許可權。
協議使用埠:
RPC: 111 TCP/UDP
NFSD: 2049 TCP/UDP
mountd: RPC服務在NFS服務啟動時默認會為mountd動態選取一個隨機埠(32768--65535)來進行通訊,可以在/etc/nfsmount.conf文件中指定mount的埠。
5.NTP (網路時間協議)
他的目的是國際互聯網上傳遞統一,標準的時間。
NTP同時同步指的是通過網路的NTP協議和時間源進行時間校準,前提條件,事件源輸出必須通過網路介面,數據輸出格式必須符合NTP協議。
區域網內所有的PC,伺服器和其他設備通過網路與時間伺服器保持同步,NTP協議自動判斷網路延時,並給得到的數據進行時間補償,從而使區域網內設備時間保持統一標准。
埠: 123/UDP
6.DNS 域名系統
該系統用於命名組織到域層次結構中的計算機和網路服務。
在Internel上域名和IP地址是一一對應的,域名雖然便於人們記憶,但機器之間只能互相認識IP地址,他們之間的轉換工作稱為域名解析,域名解析需要專門的域名解析伺服器來完成。
DNS運行在UDP協議之上,使用埠號53.
在傳輸層TCP提供端到端可靠的服務,在UDP端提供盡力而為的服務,其控制埠作用於UDP埠53.
UDP53: 解析客戶端的域名用UDP(速度快)
TCP53 主從用(安全性較高)
7.PHP-FPM是一個PHPFastCGI
默認埠:9000/TCP
8.SMTP: 是一種提供可靠且有效電子郵件傳輸協議。SMTP是建模在FTP文件傳輸服務上的一種郵件服務,主要用於傳輸系統之間的郵件信息並提供來信相關的通知
SMTP: 埠號:25 /TCP 發郵件
POP3: 埠號:TCP/25 收郵件
IMAP4 埠號: TCP/143 用來提供發郵件支持附件用的。
9.Samba:
137(UDP) , 138(UDP)
139(TCP) , 445(TCP) 提供文件共享功能
137udp,138udp提供ip地址到主機名解析的功能
901(TCP)
10.Mycat
代替昂貴的Oracle的MySQL集群中間件
默認埠8066連接Mycat
9066管理埠
⑤ Linux查看進程佔用埠號(linux查看進程佔用埠情況)
1、Linux查看進程佔用埠號。
2、linux查看進程佔用埠grep。
3、linux查看進程佔用的埠。
4、查看埠佔用的進程。
1."linux查看進程佔用埠,為您提供linux查看進程佔用埠圖文信息,打開linux系統,在linux的桌面的空白處右擊。
2.在彈出的下拉選項里,點擊打開終端。
3.在終端窗口中輸入lsof-i+埠號,回車後即可查看埠的佔用情況。
⑥ linux查看埠佔用情況
一、常用命令:
1,lsof -i埠號
2,netstat -tunlp|grep 埠號
這兩個命令都可以查看埠被什麼進程佔用。
二、lsof -i 需要 root 用戶的許可權來執行,如下圖:
三、netstat命令
netstat -tunlp用於顯示 tcp,udp 的埠和進程等相關情況。
netstat 查看埠佔用語法格式:
netstat -tunlp | grep 埠號
(6)linux程序埠擴展閱讀
一、更多 lsof 的命令擴展
1、lsof -i:8080:查看8080埠佔用
2、lsof abc.txt:顯示開啟文件abc.txt的進程
3、lsof -c abc:顯示abc進程現在打開的文件
4、lsof -c -p 1234:列出進程號為1234的進程所打開的文件
5、lsof -g gid:顯示歸屬gid的進程情況
6、lsof +d /usr/local/:顯示目錄下被進程開啟的文件
7、lsof +D /usr/local/:同上,但是會搜索目錄下的目錄,時間較長
8、lsof -d 4:顯示使用fd為4的進程
9、lsof -i -U:顯示所有打開的埠和UNIX domain文件
二、更多netstat命令
1、netstat -ntlp //查看當前所有tcp埠
2、netstat -ntulp | grep 80 //查看所有80埠使用情況
3、netstat -ntulp | grep 3306 //查看所有3306埠使用情況
三、關閉埠
1、在查到埠佔用的進程後,如果你要殺掉對應的進程可以使用 kill 命令:
kill -9 PID
2、如上實例,我們看到 8000 埠對應的 PID 為 26993,使用以下命令殺死進程:
kill -9 26993
⑦ Linux查看埠號命令(查看進程命令(linux查看埠號的命令)
1、linux 埠查看命令。
2、Linux查看埠號。
3、怎麼查看linux埠號。
4、如何查看linux埠號。
1."linux查看埠號命令,為您提供linux查看埠號命令圖文信息,打開linux系統,在linux的桌面的空白處右擊。
2.在彈出的下拉選項里,點擊打開終端。
3.在終端窗口中輸入cat/etc/services命令,回車後即可查看到伺服器埠。
⑧ linux查看運行的埠命令
一、使用 netstat 檢查埠
netstat 是一個命令行工具,可以提供有關網路連接的信息。
要列出正在偵聽的所有 TCP 或 UDP 埠,包括使用埠和套接字狀態的服務,請使用以下命令:
netstat -tunlp
此命令中使用的選項具有以下含義:
-t - 顯示 TCP 埠。
-u - 顯示 UDP 埠。
-n - 顯示數字地址而不是主機名。
-l - 僅顯示偵聽埠。
-p - 顯示進程的 PID 和名稱。僅當您以 root 或 sudo 用戶身份運行命令時,才會顯示此信息。
查詢指定埠通過grep過濾:
netstat -tnlp | grep :80
二、使用 ss 檢查埠
ss 是新的 netstat,命令選項大致相同。它缺少一些 netstat 功能,但暴露了更多的 TCP 狀態,而且速度稍快。《Linux就該這么學》 一起學習linux
使用示例:ss -tunlp
三、使用 lsof 檢查埠
lsof 是一個功能強大的命令行實用程序,它提供有關進程打開的文件的信息。
在 Linux 中,一切都是文件,可以將套接字視為寫入網路的文件。
要使用 lsof 獲取所有偵聽 TCP 埠的列表:
lsof -nP -iTCP -sTCP:LISTEN
使用的選項如下:
-n - 不要將埠號轉換為埠名稱。
-p - 不要解析主機名,顯示數字地址。
-iTCP -sTCP:LISTEN - 僅顯示 TCP 協議狀態為 LISTEN 的網路文件。
要查找正在偵聽特定埠(例如 3306)的進程,請使用以下命令:
sudo lsof -nP -iTCP:3306 -sTCP:LISTEN
⑨ linux下進程埠號查看
一、查看進程佔用的埠號
1、查看程序對應的進程號:ps -ef | grep 進程名字
2、查看進程號所佔用的埠號:netstat -nltp | grep 進程號
3、通過進程號查詢進程信息:ps -ef | grep 進程號
二、查看埠號所使用的進程號
1、使用lsof命令:lsof -i:埠號
使用netstat -nltp 也是可以做的
2、查看所有的進程佔用的埠號:lsof -i
⑩ linux怎麼查看進程佔用埠
1. ss命令簡介
ss 是 Socket Statistics 的縮寫。ss 命令可以用來獲取 socket 統計信息,它顯示的內容和 netstat 類似。但 ss 的優勢在於它能夠顯示更多更詳細的有關 TCP 和連接狀態的信息,而且比 netstat 更快。當伺服器的 socket 連接數量變得非常大時,無論是使用 netstat 命令還是直接 cat /proc/net/tcp,執行速度都會很慢。ss 命令利用到了 TCP 協議棧中 tcp_diag。tcp_diag 是一個用於分析統計的模塊,可以獲得 Linux 內核中第一手的信息,因此 ss 命令的性能會好很多。
ss命令簡介
2. 常用選項
-h, --help 幫助
-V, --version 顯示版本號
-t, --tcp 顯示 TCP 協議的 sockets
-u, --udp 顯示 UDP 協議的 sockets
-x, --unix 顯示 unix domain sockets,與 -f 選項相同
-n, --numeric 不解析服務的名稱,如 "22" 埠不會顯示成 "ssh"
-l, --listening 只顯示處於監聽狀態的埠
-p, --processes 顯示監聽埠的進程(Ubuntu 上需要 sudo)
-a, --all 對 TCP 協議來說,既包含監聽的埠,也包含建立的連接
-r, --resolve 把 IP 解釋為域名,把埠號解釋為協議名稱
3. 常見用法
如果不添加選項 ss 命令默認輸出所有建立的連接(不包含監聽的埠),包括 tcp, udp, and unix socket 三種類型的連接:
3.1 查看前5名的連接:
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port
u_str ESTAB 0 0 * 20040 * 20041
u_str ESTAB 0 0 * 20030 * 20031
u_str ESTAB 0 0 * 20044 * 20043
u_str ESTAB 0 0 /run/dbus/system_bus_socket 18592 * 18591
3.2 查看主機的監聽埠
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 127.0.0.1:9016 :
LISTEN 0 128 127.0.0.1:9017 :
LISTEN 0 100 127.0.0.1:25 :
LISTEN 0 128 127.0.0.1:9018 :
LISTEN 0 128 127.0.0.1:1723 :
LISTEN 0 128 127.0.0.1:9019 :
3.3 linux查看tcp連接
ESTAB 0 0 ::1:ssh ::1:53238
ESTAB 0 0 ::1:53278 ::1:ssh
ESTAB 0 0 ::1:ssh ::1:53280
ESTAB 0 0 ::1:53288 ::1:ssh
ESTAB 0 0 ::1:ssh ::1:53296
ESTAB 0 0 ::1:53294 ::1:ssh
ESTAB 0 0 ::1:48456 ::1:ssh
ESTAB 0 0 ::1:53286 ::1:ssh
ESTAB 0 0 ::1:53292 ::1:ssh
ESTAB 0 0 ::1:ssh ::1:53272
linux查看tcp連接
3.4 解析IP和埠號
使用-r選項
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 my_public_ip:9016 :
LISTEN 0 128 my_public_ip:9017 :
LISTEN 0 100 localhost:smtp :
LISTEN 0 128 my_public_ip:9018 :
LISTEN 0 128 my_public_ip:pptp :
LISTEN 0 128 my_public_ip:9019 :
linux查看監聽埠
3.5 輸出時帶進程名稱
使用-p選項
Total: 2340 (kernel 2365)
TCP: 2126 (estab 72, closed 23, orphaned 1, synrecv 0, timewait 2/0), ports 0
Transport Total IP IPv6
3.6 根據條件過濾輸出結果
可以通過語法過濾輸出結果,根據源IP、源埠、目標IP、目標埠
src源
dst目標
ss dst 172.16.26.33
ss dst 172.16.26.43:http
ss dst 172.16.26.43:443
3.7 根據源埠號范圍輸出:
根據目標埠號范圍輸出:
ss dport OP PORT
OP 可以代表以下任意一個:
<=le小於或等於某個埠號 >=ge大於或等於某個埠號==eq等於某個埠號!=ne不等於某個埠號>gt大於某個埠號<lt小於某個埠號
比如:
輸出源埠號小於8080的連接狀態
或者
3.8 根據TCP 的狀態進行過濾
ss命令還可以根據TCP連接的狀態進行過濾,支持的 TCP 協議中的狀態有:
established
syn-sent
syn-recv
fin-wait-1
fin-wait-2
time-wait
closed
close-wait
last-ack
listening
closing
除了上面的 TCP 狀態,還可以使用下面這些狀態:
狀態輸出結果 all輸出所有TCP狀態。connected輸出已經建立連接的TCP狀態。synchronized輸出同步狀態的連接。bucket輸出maintained的狀態,如:time-wait 和 syn-recv。big輸出與bucket相反的狀態。
只輸出ipv4狀態:
只輸出ipv6狀態:
輸出ipv4監聽狀態:
3.9 根據TCP狀態和埠號進行過濾
輸入出ipv4協議下的ssh監聽狀態:
或者
要麼使用轉義小括弧,要麼使用單引號
查看所有已經建立TCP三次握手的HTTP連接:
查看所有正在進程的ssh連接:
4. 總結
ss 命令功能豐富並且性能出色,完全可以替代 netsate 命令。已經成為我們日常查看 socket 相關信息的利器。未來netstat已經慢慢被ss取代。
https://www.linuxrumen.com/cyml/821.html