telnet命令
telnet命令:使用 TELNET 協議遠程登錄。
ssh命令
ssh命令:openssh套件中的客戶端連接工具,可以給予ssh加密協議實現安全的遠程登錄服務器。
格式:
ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-J [user@]host[:port]] [-L address] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-p port] [-Q query_option] [-R address]
[-S ctl_path] [-W host:port] [-w local_tun[:remote_tun]]
[user@]hostname [command]
參數:
參數 | 作用 |
---|---|
-1 | 強制使用ssh協議版本1; |
-2 | 強制使用ssh協議版本2; |
-4 | 強制使用IPv4地址; |
-6 | 強制使用IPv6地址; |
-A | 開啟認證代理連接轉發功能; |
-a | 關閉認證代理連接轉發功能; |
-b | 使用本機指定地址作為對應連接的源ip地址; |
-C | 請求壓縮所有數據; |
-F | 指定ssh指令的配置文件; |
-f | 后台執行ssh指令; |
-g | 允許遠程主機連接主機的轉發端口; |
-i | 指定身份文件; |
-l | 指定連接遠程服務器登錄用戶名; |
-N | 不執行遠程指令; |
-o | 指定配置選項; |
-p | 指定遠程服務器上的端口; |
-q | 靜默模式 |
-X | 開啟X11轉發功能; |
-x | 關閉X11轉發功能; |
-y | 開啟信任X11轉發功能。 |
scp命令
scp命令:安全復制(遠程文件復制程序)
格式:
scp [-12346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
[-l limit] [-o ssh_option] [-P port] [-S program]
[[user@]host1:]file1 ... [[user@]host2:]file2
參數:
參數 | 作用 |
---|---|
-1 | 強制使用ssh協議版本1; |
-2 | 強制使用ssh協議版本2; |
-4 | 使用ipv4 |
-6 | 使用ipv6 |
-C | 以批處理模式運行; |
-C | 使用壓縮; |
-F | 指定ssh配置文件; |
-l | 指定寬帶限制; |
-o | 指定使用的ssh選項; |
-P | 指定遠程主機的端口號 |
-p | 保留文件的最后修改時間,最后訪問時間和權限模式; |
-q | 不顯示復制進度; |
-r | 以遞歸方式復制。 |
wget命令
wget命令:非交互式網絡下載程序。
格式: wget [option]... [URL]...
參數:
參數 | 作用 |
---|---|
-O | 輸出文件 |
--limit-rate=xxxk | 限速 |
-c | 繼續執行上次終端的任務; |
-b | 進行后台的方式運行wget; |
--tries=xx | 增加重試次數 |
--spider | 測試下載鏈接 |
ping命令
ping命令:
測試主機之間網絡的連通性。執行ping指令會使用ICMP傳輸協議,發出要求回應的信息,若遠端主機的網絡功能沒有問題,就會回應該信息,因而得知該主機運作正常。
格式:
ping [-aAbBdDfhLnOqrRUvV46] [-c count] [-F flowlabel] [-i interval] [-I
interface] [-l preload] [-m mark] [-M pmtudisc_option] [-N node‐
info_option] [-w deadline] [-W timeout] [-p pattern] [-Q tos] [-s pack‐
etsize] [-S sndbuf] [-t ttl] [-T timestamp option] [hop ...] destina‐
tion
參數:
參數 | 作用 |
---|---|
-d | 使用Socket的SO_DEBUG功能; |
-c | 設置完成要求回應的次數; |
-i<間隔秒數> | 指定收發信息的間隔時間; |
-I<網絡界面> | 使用指定的網絡界面送出數據包; |
-l<前置載入> | 設置在送出要求信息之前,先行發出的數據包; |
-n | 只輸出數值; |
-p<范本樣式> | 設置填滿數據包的范本樣式; |
-q | 不顯示指令執行過程,開頭和結尾的相關信息除外; |
-r | 忽略普通的Routing Table,直接將數據包送到遠端主機上; |
-R | 記錄路由過程; |
-s<數據包大小> | 設置數據包的大小; |
-t<存活數值> | 設置存活數值TTL的大小; |
-v | 詳細顯示指令的執行過程。 |
-f | 極限檢測; |
route命令
route命令:顯示/操作IP路由表
格式:
route [-CFvnNee] [-A family |-4|-6]
route [-v] [-A family |-4|-6] add [-net|-host] target [netmask Nm] [gw
Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn]
[reinstate] [[dev] If]
route [-v] [-A family |-4|-6] del [-net|-host] target [gw Gw] [netmask
Nm] [metric N] [[dev] If]
route [-V] [--version] [-h] [--help]
參數:
參數 | 作用 |
---|---|
-n | 不執行DNS反向查找,直接顯示數字形式的IP地址; |
例子:
查看路由
[root@xxx ~]# route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.141.2 0.0.0.0 UG 100 0 0 ens32
192.168.141.0 0.0.0.0 255.255.255.0 U 100 0 0 ens32
[root@xxx ~]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
default gateway 0.0.0.0 UG 100 0 0 ens32
192.168.141.0 0.0.0.0 255.255.255.0 U 100 0 0 ens32
添加網關/設置網關:
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 #增加一條到達244.0.0.0的路由。
屏蔽一條路由:
route add -net 224.0.0.0 netmask 240.0.0.0 reject #增加一條屏蔽的路由,目的地址為224.x.x.x將被拒絕。
刪除路由記錄:
route del -net 224.0.0.0 netmask 240.0.0.0
route del -net 224.0.0.0 netmask 240.0.0.0 reject
刪除和添加設置默認網關:
route del default gw 192.168.120.240
route add default gw 192.168.120.240
ifconfig命令
ifconfig命令:配置網絡接口
格式:
ifconfig [-v] [-a] [-s] [interface]
ifconfig [-v] interface [aftype] options | address ...
例子
# 啟動關閉指定網卡:
ifconfig eth0 up
ifconfig eth0 down
ifconfig eth0 up為啟動網卡eth0,ifconfig eth0 down為關閉網卡eth0。ssh登陸linux服務器操作要小心,關閉了就不能開啟了,除非你有多網卡。
# 為網卡配置和刪除IPv6地址:
ifconfig eth0 add 33ffe:3240:800:1005::2/64 #為網卡eth0配置IPv6地址
ifconfig eth0 del 33ffe:3240:800:1005::2/64 #為網卡eth0刪除IPv6地址
# 用ifconfig修改MAC地址:
ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE
# 配置IP地址:
[root@localhost ~]# ifconfig eth0 192.168.2.10
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255
# 啟用和關閉arp協議:
ifconfig eth0 arp #開啟網卡eth0 的arp協議
ifconfig eth0 -arp #關閉網卡eth0 的arp協議
# 設置最大傳輸單元:
ifconfig eth0 mtu 1500 #設置能通過的最大數據包大小為 1500 bytes
ifup命令
ifup命令:啟動接口
例子:
[root@xxx ~]# ifup lo
ifdown命令
ifdown命令:關閉接口
例子:
[root@xxx ~]# ifdown lo
[root@xxx ~]# ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.141.181 netmask 255.255.255.0 broadcast 192.168.141.255
inet6 fe80::fd97:63ea:9541:3370 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:fa:81:2f txqueuelen 1000 (Ethernet)
RX packets 518359 bytes 683586851 (651.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 75568 bytes 7344212 (7.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
netstat命令
netstat命令:打印網絡連接,路由表,接口統計信息、偽裝連接和多播成員關系
參數:
-a或--all:顯示所有連線中的Socket;
-A<網絡類型>或--<網絡類型>:列出該網絡類型連線中的相關地址;
-c或--continuous:持續列出網絡狀態;
-C或--cache:顯示路由器配置的快取信息;
-e或--extend:顯示網絡其他相關信息;
-F或--fib:顯示FIB;
-g或--groups:顯示多重廣播功能群組組員名單;
-h或--help:在線幫助;
-i或--interfaces:顯示網絡界面信息表單;
-l或--listening:顯示監控中的服務器的Socket;
-M或--masquerade:顯示偽裝的網絡連線;
-n或--numeric:直接使用ip地址,而不通過域名服務器;
-N或--netlink或--symbolic:顯示網絡硬件外圍設備的符號連接名稱;
-o或--timers:顯示計時器;
-p或--programs:顯示正在使用Socket的程序識別碼和程序名稱;
-r或--route:顯示Routing Table;
-s或--statistice:顯示網絡工作信息統計表;
-t或--tcp:顯示TCP傳輸協議的連線狀況;
-u或--udp:顯示UDP傳輸協議的連線狀況;
-v或--verbose:顯示指令執行過程;
-V或--version:顯示版本信息;
-w或--raw:顯示RAW傳輸協議的連線狀況;
-x或--unix:此參數的效果和指定"-A unix"參數相同;
--ip或--inet:此參數的效果和指定"-A inet"參數相同。
例子:
# 列出所有端口 (包括監聽和未監聽的)
netstat -a #列出所有端口
netstat -at #列出所有tcp端口
netstat -au #列出所有udp端口
# 列出所有處於監聽狀態的 Sockets
netstat -l #只顯示監聽端口
netstat -lt #只列出所有監聽 tcp 端口
netstat -lu #只列出所有監聽 udp 端口
netstat -lx #只列出所有監聽 UNIX 端口
# 顯示每個協議的統計信息
netstat -s 顯示所有端口的統計信息
netstat -st 顯示TCP端口的統計信息
netstat -su 顯示UDP端口的統計信息
# 在netstat輸出中顯示 PID 和進程名稱
netstat -pt
#IP和TCP分析
# 查看連接某服務端口最多的的IP地址:
netstat -ntu | grep :80 | awk '{print $5}' | cut -d: -f1 | awk '{++ip[$1]} END {for(i in ip) print ip[i],"\t",i}' | sort -nr
# TCP各種狀態列表:
netstat -nt | grep -e 127.0.0.1 -e 0.0.0.0 -e ::: -v | awk '/^tcp/ {++state[$NF]} END {for(i in state) print i,"\t",state[i]}'
# 查看phpcgi進程數,如果接近預設值,說明不夠用,需要增加:
netstat -anpo | grep "php-cgi" | wc -l
ss命令
ss命令:另一個用於研究套接字的實用程序
格式:ss [options] [ FILTER ]
參數:
-h:顯示幫助信息;
-V:顯示指令版本信息;
-n:不解析服務名稱,以數字方式顯示;
-a:顯示所有的套接字;
-l:顯示處於監聽狀態的套接字;
-o:顯示計時器信息;
-m:顯示套接字的內存使用情況;
-p:顯示使用套接字的進程信息;
-i:顯示內部的TCP信息;
-4:只顯示ipv4的套接字;
-6:只顯示ipv6的套接字;
-t:只顯示tcp套接字;
-u:只顯示udp套接字;
-d:只顯示DCCP套接字;
-w:僅顯示RAW套接字;
-x:僅顯示UNIX域套接字。
例子:
# 顯示所有UDP Sockets
[root@xxx ~]# ss -u -a
State Recv-Q Send-Q Local Address:Port Peer Address:Port
UNCONN 0 0 127.0.0.1:323 *:*
UNCONN 0 0 *:bootpc *:*
UNCONN 0 0 ::1:323 :::*