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) · 将二进制文件地址转换成文件名和行数
- 显示可执行文件的指令地址对应源代码的文件名和行数:
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 -Masterisk(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-listwg(Linux) · 管理 WireGuard 接口配置
- 检查当前激活接口的状态:
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。
继续阅读
- 知识专题
- 应用实践
- 知识专题