Skip to content
← 返回Linux列表
命令与系统观察

Linux:网络连接与传输 ​

检查状态与定位问题 ​

ss(Linux) · 用于检查套接字(sockets)的实用程序 ​

更多信息:https://manned.org/ss。

  • 显示所有 TCP/UDP/RAW/UNIX 套接字:
bash
ss {{[-a|--all]}} {{--tcp|--udp|--raw|--unix}}
  • 根据状态过滤 TCP 套接字(仅显示/排除):
bash
ss {{state|exclude}} {{bucket|big|connected|synchronized|...}}
  • 显示所有连接到本地 HTTPS 端口(443)的 TCP 套接字:
bash
ss {{[-t|--tcp]}} src :443
  • 显示所有监听本地 8080 端口的 TCP 套接字:
bash
ss {{[-lt|--listening --tcp]}} src :8080
  • 显示所有连接到远程 SSH 端口的 TCP 套接字及其对应的进程:
bash
ss {{[-pt|--processes --tcp]}} dst :ssh
  • 显示连接到特定源端口和目的端口的所有 UDP 套接字:
bash
ss {{[-u|--udp]}} 'sport == :{{source_port}} and dport == :{{destination_port}}'
  • 显示在 192.168.0.0/16 子网上本地连接的所有 TCP IPv4 套接字:
bash
ss {{[-4t|--ipv4 --tcp]}} src 192.168/16
  • 断开(Kill)具有特定目的 IP 和端口的 IPv4 或 IPv6 套接字连接:
bash
ss {{[-K|--kill]}} dst {{ip_address}} dport = {{port}}

专用工具与其他操作 ​

ac(Linux) · 打印用户连接时长数据 ​

更多信息:https://www.gnu.org/software/acct/manual/accounting.html#ac。

  • 以小时为单位打印当前用户连接时间:
bash
ac
  • 以小时为单位打印所有用户连接时间:
bash
ac {{[-p|--individual-totals]}}
  • 以小时为单位打印特定用户连接时间:
bash
ac {{[-p|--individual-totals]}} {{用户名}}
  • 以小时为单位打印特定用户每天连接时间:
bash
ac {{[-d|--daily-totals]}} {{[-p|--individual-totals]}} {{用户名}}
  • 显示附加明细:
bash
ac --compatibility

代码地址转换工具另列于此;它处理二进制指令地址,与 IP 地址诊断不同。

addr2line(Linux) · 将二进制文件地址转换成文件名和行数 ​

更多信息:https://manned.org/addr2line。

  • 显示可执行文件的指令地址对应源代码的文件名和行数:
bash
addr2line {{[-e|--exe]}} {{可执行文件路径}} {{地址}}
  • 显示函数名、文件名和行数:
bash
addr2line {{[-e|--exe]}} {{可执行文件路径}} {{[-f|--functions]}} {{地址}}
  • 将 C++ 代码函数名符号重组:
bash
addr2line {{[-e|--exe]}} {{可执行文件地址}} {{[-f|--functions]}} {{[-C|--demangle]}} {{地址}}

apache2ctl(Linux) · Apache HTTP web 服务器命令行管理工具 ​

基于 Debian 的操作系统自带该命令,基于 RHEL 的查看 httpd。 更多信息:https://manned.org/apache2ctl。

  • 启动 Apache 守护进程。如果已运行则发送一个消息:
bash
sudo apache2ctl start
  • 关闭 Apache 守护进程:
bash
sudo apache2ctl stop
  • 重启 Apache 守护进程:
bash
sudo apache2ctl restart
  • 检查配置文件语法:
bash
sudo apache2ctl -t
  • 列出已加载模块:
bash
sudo apache2ctl -M

asterisk(Linux) · 电话和交换(手机)服务器 ​

用于管理服务器自身和管理已经在运行的实例。 更多信息:https://docs.asterisk.org/Operation/。

  • 重新连接一个正在运行的服务器,并打开 3 级的日志详细度:
bash
asterisk -r -vvv
  • 重新连接一个正在运行的服务器,执行一个命令,然后返回:
bash
asterisk -r -x "{{命令}}"
  • 显示 chan_SIP 客户端(手机):
bash
asterisk -r -x "sip show peers"
  • 显示激活的通话和频道:
bash
asterisk -r -x "core show channels"
  • 显示语音邮箱:
bash
asterisk -r -x "voicemail show users"
  • 终止一个频道:
bash
asterisk -r -x "hangup request {{频道_id}}"
  • 重新载入 chan_SIP 设置:
bash
asterisk -r -x "sip reload"

avahi-browse(Linux) · 显示通过 mDNS/DNS-SD 暴露在本地网络的服务和主机 ​

Avahi 与苹果设备的 Bonjour(Zeroconf)兼容。 更多信息:https://manned.org/avahi-browse。

  • 列出本地网络中的所有服务和他们的地址与端口,忽略他们本地的地址和端口:
bash
avahi-browse --all --resolve --ignore-local
  • 列出所有的域名:
bash
avahi-browse --browse-domains
  • 只搜索一个特定的域名:
bash
avahi-browse --all --domain={{domain}}

bmon(Linux) · 监控带宽并捕获网络相关统计信息 ​

更多信息:https://manned.org/bmon。

  • 显示所有接口的列表:
bash
bmon {{[-a|--show-all]}}
  • 以每秒位数显示数据传输速率:
bash
bmon {{[-b|--use-bit]}}
  • 设置策略以定义显示哪些网络接口:
bash
bmon {{[-p|--policy]}} {{interface_1,interface_2,interface_3}}
  • 设置计算每个计数器速率的间隔(以秒为单位):
bash
bmon {{[-R|--rate-interval]}} {{2.0}}

brctl(Linux) · 以太网桥管理 ​

更多信息:https://manned.org/brctl。

  • 显示有关当前现有以太网网桥信息的列表:
bash
sudo brctl show
  • 创建新的以太网桥接接口:
bash
sudo brctl addbr {{网桥名}}
  • 删除一个已存在的以太网桥接接口:
bash
sudo brctl delbr {{网桥名}}
  • 向现有网桥添加接口:
bash
sudo brctl addif {{网桥名}} {{接口名}}
  • 从现有网桥中删除接口:
bash
sudo brctl delif {{网桥名}} {{接口名}}

ip(Linux) · 显示/操作路由、设备、策略路由和隧道 ​

一些子命令(例如 address)有自己的使用文档。 更多信息:https://manned.org/ip.8。

  • 列出带有详细信息的接口:
bash
ip {{[a|address]}}
  • 列出带有简要网络层信息的接口:
bash
ip -br {{[a|address]}}
  • 列出带有简要链路层信息的接口:
bash
ip -br {{[l|link]}}
  • 显示路由表:
bash
ip {{[r|route]}}
  • 显示邻居(ARP 表):
bash
ip {{[n|neighbor]}}
  • 使接口启动/关闭:
bash
sudo ip {{[l|link]}} {{[s|set]}} {{interface}} {{up|down}}
  • 向接口添加/删除 IP 地址:
bash
sudo ip {{[a|address]}} {{add|delete}} {{ip}}/{{mask}} dev {{interface}}
  • 添加默认路由:
bash
sudo ip {{[r|route]}} {{[a|add]}} default via {{ip}} dev {{interface}}

iptables(Linux) · 可用于配置 Linux 内核防火墙提供的过滤表、规则链和规则的程序 ​

使用 ip6tables 来设置 IPv6 流量规则。 另请参阅:iptables-save, iptables-restore。 更多信息:https://manned.org/iptables。

  • 查看过滤表的规则链、规则以及数据包/字节计数器:
bash
sudo iptables {{[-vnL --line-numbers|--verbose --numeric --list --line-numbers]}}
  • 设定规则链策略规则:
bash
sudo iptables {{[-P|--policy]}} {{规则链}} {{规则}}
  • 追加规则到 IP 的规则链策略:
bash
sudo iptables {{[-A|--append]}} {{规则链}} {{[-s|--source]}} {{ip}} {{[-j|--jump]}} {{规则}}
  • 追加规则到 IP 的规则链策略(考虑协议与端口):
bash
sudo iptables {{[-A|--append]}} {{规则链}} {{[-s|--source]}} {{ip}} {{[-p|--protocol]}} {{协议}} --dport {{端口}} {{[-j|--jump]}} {{规则}}
  • 添加 NAT 规则,将来自 192.168.0.0/24 子网的所有流量转换为主机的公共 IP:
bash
sudo iptables {{[-t|--table]}} {{nat}} {{[-A|--append]}} {{POSTROUTING}} {{[-s|--source]}} {{192.168.0.0/24}} {{[-j|--jump]}} {{MASQUERADE}}
  • 删除规则链中的规则:
bash
sudo iptables {{[-D|--delete]}} {{规则链}} {{规则所在行号}}

iwctl(Linux) · 控制 iwd 网络请求程序 ​

控制 iwd 网络请求程序。 另请参阅:nmcli, iw。 更多信息:https://manned.org/iwctl。

  • 启动交互模式,在此模式您可以直接输入命令并带有自动补全:
bash
iwctl
  • 显示您的 Wi-Fi 站点:
bash
iwctl station list
  • 开始寻找带有站点的网络:
bash
iwctl station {{站点}} scan
  • 显示站点发现的网络:
bash
iwctl station {{站点}} get-networks
  • 连接到带有站点的网络,如果需要凭证,则会询问:
bash
iwctl station {{站点}} connect {{网络名称}}
  • 显示帮助:
bash
iwctl {{[-h|--help]}}

openvpn3(Linux) · OpenVPN 3 Linux 客户端 ​

更多信息:https://community.openvpn.net/openvpn/wiki/OpenVPN3Linux。

  • 打开一个新的 VPN 会话:
bash
openvpn3 session-start {{[-c|--config]}} {{路径/到/config.conf}}
  • 列出已建立的会话:
bash
openvpn3 sessions-list
  • 断开当前建立的以给定配置开始的会话:
bash
openvpn3 session-manage {{[-c|--config]}} {{路径/到/config.conf}} {{[-D|--disconnect]}}
  • 导入 VPN 配置:
bash
openvpn3 config-import {{[-c|--config]}} {{路径/到/config.conf}}
  • 列出导入的配置:
bash
openvpn3 configs-list

wg(Linux) · 管理 WireGuard 接口配置 ​

更多信息:https://www.wireguard.com/quickstart/。

  • 检查当前激活接口的状态:
bash
sudo wg
  • 生成新的私钥:
bash
wg genkey
  • 从私钥生成公钥:
bash
wg < {{路径/到/私钥}} pubkey > {{路径/到/公钥}}
  • 同时生成公钥和私钥:
bash
wg genkey | tee {{路径/到/私钥}} | wg pubkey > {{路径/到/公钥}}
  • 展示 WireGuard 接口的当前配置:
bash
sudo wg showconf {{wg0}}

示例整理自 tldr-pages,作者为 tldr-pages team and contributors,遵循 CC BY 4.0。

继续阅读