Skip to the content.

上一页      主目录      下一页

16. Networking Utilities


本章包含了一些在网络需要调查时可以派上用场的工具。

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/basicnetworkingutilities

16.1 Avahi-0.8


简介Avahi

Avahi包是一个促进本地网络服务发现的系统。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

额外下载

Avahi 依赖

必要

GLib-2.74.5

推荐

gobject-introspection-1.74.0, GTK+-2.24.33, GTK+-3.24.36, libdaemon-0.14, libglade-2.6.4, 和 Qt-5.15.8

可选

D-Bus Python-1.3.2, libevent-2.1.12, PyGTK-2.24.0, Doxygen-1.9.6xmltoman (用于生成文档)

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/avahi

安装Avahi

应该有一个专用的用户和组来控制启动后的avahi-daemon守护进程。以root用户发出以下命令:

groupadd -fg 84 avahi &&
useradd -c "Avahi Daemon Owner" -d /run/avahi-daemon -u 84 \
        -g avahi -s /bin/false avahi

还应该为Avahi客户端设置一个专用的特权访问组。以root用户发出以下命令:

groupadd -fg 86 netdev

修复了在使用IPv6和系统上存在多个网络适配器时导致竞争条件的回归:

patch -Np1 -i ../avahi-0.8-ipv6_race_condition_fix-1.patch

修复了avahi-daemon中的一个安全漏洞:

sed -i '426a if (events & AVAHI_WATCH_HUP) { \
client_free(c); \
return; \
}' avahi-daemon/simple-protocol.c

运行以下命令安装Avahi:

./configure \
    --prefix=/usr        \
    --sysconfdir=/etc    \
    --localstatedir=/var \
    --disable-static     \
    --disable-libevent   \
    --disable-mono       \
    --disable-monodoc    \
    --disable-python     \
    --disable-qt3        \
    --disable-qt4        \
    --enable-core-docs   \
    --with-distro=none   \
    --with-dbus-system-address='unix:path=/run/dbus/system_bus_socket' &&
make

这个包没有附带测试套件。

现在,作为root用户:

make install

命令解释

--disable-static: 此开关防止安装库的静态版本。

--disable-libevent: 该参数禁止使用libevent-2.1.12。如果已安装,请将其删除。

--disable-mono: 该参数禁用Mono绑定。

--disable-monodoc: 此参数禁用Mono绑定的文档。

--disable-python: 该参数禁用依赖于Python的脚本。它还允许成功完成常规安装。

--disable-qt3: 此参数禁止尝试构建包中过时的Qt3部分。

--disable-qt4: 此参数禁止尝试构建包中过时的Qt4Core部分。

--enable-core-docs: 此参数允许构建文档。

--with-distro=none: 在LFS发行版中有一个过时的引导脚本。此选项禁用它。

--with-dbus-system-address=...: 该选项防止包引用已弃用的/var/run目录。

--disable-dbus: 该参数禁止使用D-Bus。

--disable-gtk: 该参数禁止使用GTK+2。

--disable-gtk3: 该参数禁止使用GTK+3。

--disable-qt5: 该参数禁用Qt5的使用,并允许在没有Qt5的情况下进行构建。

--disable-libdaemon: 该参数禁止使用libdaemon。如果使用此选项,将不会构建avahi-daemon

--enable-tests: 此选项支持构建测试和示例。

--enable-compat-howl: 此选项启用HOWL的兼容层。

--enable-compat-libdns_sd: 这个选项为libdns_sd启用兼容层。

配置 avahi

引导脚本

要在引导时启动avahi-daemon守护进程,以root用户运行以下命令启用之前安装的systemd单元:

systemctl enable avahi-daemon

要在引导时启动avahi-dnsconfd守护进程,以root用户运行以下命令启用之前安装的systemd单元:

systemctl enable avahi-dnsconfd

内容

安装程序: avahi-autoipd, avahi-browse, avahi-browse-domains, avahi-daemon, avahi-discover-standalone, avahi-dnsconfd, avahi-publish, avahi-publish-address, avahi-publish-service, avahi-resolve, avahi-resolve-address, avahi-resolve-host-name, avahi-set-host-name, bshell, bssh, 和 bvnc

安装库: libavahi-client.so, libavahi-common.so, libavahi-core.so, libavahi-glib.so, libavahi-gobject.so, libavahi-libevent.so libavahi-ui-gtk3.so, libavahi-qt5, libavahi-ui.so, libdns_sd.so, 和 libhowl.so,

安装目录: /etc/avahi/services, /usr/include/{avahi-client,avahi-common, avahi-compat-howl, avahi-compat-libdns_sd, avahi-core, avahi-glib, avahi-gobject, avahi-libevent, avahi-qt5, avahi-ui}, /usr/lib/avahi, /usr/share/avahi

简短描述

avahi-autoipd 是IPv4LL网络地址配置守护进程。

avahi-browse 使用Avahi守护进程浏览mDNS/DNS-SD服务。

avahi-browse-domains 使用Avahi守护进程浏览mDNS/DNS-SD服务。

avahi-daemon 是Avahi mDNS/DNS-SD守护进程。

avahi-discover-standalone 使用Avahi守护进程浏览mDNS/DNS-SD服务。

avahi-dnsconfd 是mDNS/DNS-SD配置守护进程的单播DNS服务器。

avahi-publish 使用Avahi守护进程注册mDNS/DNS-SD服务或主机名或地址映射。

avahi-publish-address 使用Avahi守护进程注册mDNS/DNS-SD服务或主机名或地址映射。

avahi-publish-service 使用Avahi守护进程注册mDNS/DNS-SD服务或主机名或地址映射。

avahi-resolve 使用Avahi守护进程将一个或多个mDNS/DNS主机名解析为IP地址(反之亦然)。

avahi-resolve-address 使用Avahi守护进程将一个或多个mDNS/DNS主机名解析为IP地址(反之亦然)。

avahi-resolve-host-name 使用Avahi守护进程将一个或多个mDNS/DNS主机名解析为IP地址(反之亦然)。

avahi-set-host-name 修改mDNS主机名。

bssh 本地网络中SSH服务端的浏览器。

bvnc 本地网络中VNC服务端的浏览器。

16.2 BIND Utilities-9.18.12


简介BIND Utilities

BIND Utilities不是一个单独的包,它是包含在BIND-9.18.12中的客户端程序的集合。BIND包包括客户端程序nslookupdighost。如果安装BIND服务器,这些程序将自动安装。本节适用于那些不需要完整BIND服务器,但需要这些客户端应用程序的用户。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

BIND Utilities 依赖

必要

libuv-1.44.2

推荐

JSON-C-0.16nghttp2-1.52.0

可选

libcap-2.67 with PAM, libxml2-2.10.3, 和 sphinx-6.1.3

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/bind-utils

安装BIND Utilities

运行以下命令安装BIND Utilities:

./configure --prefix=/usr &&
make -C lib/isc    &&
make -C lib/dns    &&
make -C lib/ns     &&
make -C lib/isccfg &&
make -C lib/bind9  &&
make -C lib/irs    &&
make -C bin/dig    &&
make -C doc

包的这一部分没有附带测试套件。

现在,作为root用户:

make -C lib/isc    install &&
make -C lib/dns    install &&
make -C lib/ns     install &&
make -C lib/isccfg install &&
make -C lib/bind9  install &&
make -C lib/irs    install &&
make -C bin/dig    install &&
cp -v doc/man/{dig.1,host.1,nslookup.1} /usr/share/man/man1

命令解释

--disable-doh: 如果您没有安装nghttp2-1.52.0并且您不需要DNS over HTTPS支持,请使用此选项。

make -C lib/…: 这些命令构建客户端程序所需的库。

make -C bin/dig: 该命令构建客户端程序。

make -C doc: 如果安装了可选的Python模块sphinx-6.1.3,此命令将构建手册页。

使用 cp -v doc/man/{dig.1,host.1,nslookup.1} /usr/share/man/man1 安装已生成的手册页。

内容

安装程序: dig, host, 和 nslookup

安装库: None

安装目录: None

简短描述

请参阅BIND-9.18.12一节中的程序描述。

16.3 NetworkManager-1.42.0


简介NetworkManager

NetworkManager是一组协作工具,使网络变得简单直接。无论你是使用WiFi、有线、3G还是蓝牙,NetworkManager都可以让你快速地从一个网络转移到另一个网络:一旦一个网络配置好并加入了一次,它就可以被检测到,并在下一次可用时自动重新加入。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

注意

确保禁用systemd-networkd服务或将其配置为不管理您想用NetworkManager管理的接口。

包信息

NetworkManager 依赖

必要

jansson-2.14libndp-1.8

推荐

cURL-7.88.1, DHCP-4.4.3-P1 (仅客户端), gobject-introspection-1.74.0, iptables-1.8.9, newt-0.52.23 (用于 nmtui), nss-3.88.1, Polkit-122, PyGObject-3.42.2, Systemd-252, UPower-1.90.0, Vala-0.56.4, 和 wpa_supplicant-2.10 (运行时,用D-Bus支持构建)

可选

BlueZ-5.66, D-Bus Python-1.3.2 (用于测试套件), GnuTLS-3.8.0 (如果 nss-3.88.1 未找到,则使用), GTK-Doc-1.33.2, libpsl-0.21.2, Qt-5.15.8 (用于示例), ModemManager-1.18.12, Valgrind-3.20.0, dnsmasq, firewalld, libaudit, libteam, mobile-broadband-provider-info, PPP, 和 RP-PPPoE

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/NetworkManager

内核配置

如果希望运行测试,请检查内核配置中是否至少启用了以下选项。这些选择被认为是必要的,但可能还不够。必要时重新编译内核:

[*] Networking support--->                                [CONFIG_NET]
        Networking options--->
        [*] TCP/IP networking                               [CONFIG_INET]
        <*/M>   IP: tunelling                               [CONFIG_NET_IPIP]
        <*/M>   IP: GRE demultiplexer                       [CONFIG_NET_IPGRE_DEMUX]
        <*/M>   IP: GRE tunnels over IP                     [CONFIG_NET_IPGRE]
        <*>   The IPv6 protocol --->                        [CONFIG_IPV6]
            <*/M> IPv6: IPv6-in-IPv4 tunnel (SIT driver)      [CONFIG_IPV6_SIT]
            <*/M> IPv6: GRE tunnel                            [CONFIG_IPV6_GRE]
            [*] IPv6: Multiple Routing Tables                 [CONFIG_IPV6_MULTIPLE_TABLES]
        [*]   MPTCP:   Multipath TCP                        [CONFIG_MPTCP]
        [*]     MPTCP: IPv6 support for Multipath TCP       [CONFIG_MPTCP_IPV6]
        <*/M> 802.1Q/802.1ad VLAN Support                   [CONFIG_VLAN_8021Q]
        [*] QoS and/or fair queueing  --->                  [CONFIG_NET_SCHED]
            <*/M> Stochastic Fairness Queueing (SFQ)          [CONFIG_NET_SCH_SFQ]
            <*/M> Token Bucket Filter (TBF)                   [CONFIG_NET_SCH_TBF]
            <*/M> Fair Queue Controlled Delay AQM (FQ_CODEL)  [CONFIG_NET_SCH_FQ_CODEL]
            <*/M> Ingress/classifier-action Qdisc             [CONFIG_NET_SCH_INGRESS]
    Device Drivers --->
    [*] Network device support --->                       [CONFIG_NETDEVICES]
        [*] Network core driver support                     [CONFIG_NET_CORE]
        <*>   Bonding driver support                        [CONFIG_BONDING]
        <*>   Dummy net driver support                      [CONFIG_DUMMY]
        <*>   Ethernet team driver support --->             [CONFIG_NET_TEAM]
        <*>   MAC-VLAN support                              [CONFIG_MACVLAN]
        <*>     MAC-VLAN based tap driver                   [CONFIG_MACVTAP]
        <*>   IP-VLAN support                               [CONFIG_IPVLAN]
        <*>   Virtual eXtensible Local Area Network (VXLAN) [CONFIG_VXLAN]
        <*>   Virtual ethernet pair device                  [CONFIG_VETH]
        <*>   Virtual Routing and Forwarding (Lite)         [CONFIG_VRF]

安装NetworkManager

如果安装了Qt-5.15.8并且需要基于Qt的示例,则修复两个meson.build文件:

sed -e 's/-qt4/-qt5/'              \
    -e 's/moc_location/host_bins/' \
    -i examples/C/qt/meson.build   &&

sed -e 's/Qt/&5/'                  \
    -i meson.build

修复python脚本,使其使用python 3:

grep -rl '^#!.*python$' | xargs sed -i '1s/python/&3/'

运行以下命令安装NetworkManager:

mkdir build &&
cd    build    &&

CXXFLAGS+="-O2 -fPIC"            \
meson setup                      \
      --prefix=/usr              \
      --buildtype=release        \
      -Dlibaudit=no              \
      -Dlibpsl=false             \
      -Dnmtui=true               \
      -Dovs=false                \
      -Dppp=false                \
      -Dselinux=false            \
      -Dqt=false                 \
      -Dsession_tracking=systemd \
      -Dmodem_manager=false      \
      .. &&
ninja

运行测试需要具有总线地址的已激活图形会话。要测试结果,执行 ninja test.

根据启用的内核选项,一些测试可能会失败。

现在,作为root用户:

ninja install &&
mv -v /usr/share/doc/NetworkManager{,-1.42.0}

如果你没有将-Ddocs=true选项传递给meson,你可以安装预生成的手册页(作为root用户):

for file in $(echo ../man/*.[1578]); do
    section=${file##*.} &&
    install -vdm 755 /usr/share/man/man$section
    install -vm 644 $file /usr/share/man/man$section/
done

如果你还没有使用-Ddocs=true,预生成的HTML文档也可以安装(作为root用户):

cp -Rv ../docs/{api,libnm} /usr/share/doc/NetworkManager-1.42.0

命令解释

CXXFLAGS="-O2 -fPIC": 这些编译器选项对于构建基于Qt5的示例是必需的。

--buildtype=release: 指定适合于包的稳定版本的构建类型,因为默认值可能会产生未优化的二进制文件。

-Ddocs=true: 如果安装了GTK-Doc-1.33.2,则使用此开关启用构建手册页和文档。

-Dnmtui=true: 此参数启用构建nmtui

-Dlibpsl=false-Dovs=false: 这些开关禁用相应库的构建。如果安装了所需的库,请删除。

-Dmodem_manager=false: 如果未安装ModemManager,则需要安装此开关。如果您已经构建了ModemManager和mobile-broadband-provider-info,则省略。

-Dsession_tracking=systemd: 此开关用于将systemd-logind设置为会话跟踪的默认程序。

-Dsystemdsystemunitdir=/lib/systemd/system: 该开关用于设置systemd单元的正确安装目录。

-Dppp=false: 该参数关闭NetworkManager对PPP的支持。

-Dlibaudit=no-Dselinux=false: libaudit和SELinux在BLFS中不使用。

-Dqt=false: 禁用QT示例。如果您有可用的QT并希望安装示例,则省略。

配置 NetworkManager

配置文件

/etc/NetworkManager/NetworkManager.conf

配置信息

要使NetworkManager工作,必须至少存在一个最小配置文件。这样的文件没有安装make install。以root用户发出以下命令,创建一个最小的NetworkManager.conf文件:

cat >> /etc/NetworkManager/NetworkManager.conf << "EOF"
[main]
plugins=keyfile
EOF

该文件不应由系统用户直接修改。相反,应该使用/etc/NetworkManager/conf.d目录下的配置文件进行系统特定的更改。

要允许polkit管理授权,请添加以下配置文件:

cat > /etc/NetworkManager/conf.d/polkit.conf << "EOF"
[main]
auth-polkit=true
EOF

要使用内置dhcp客户端以外的东西(如果只使用nmcli建议使用),使用以下配置(有效值包括dhclient或internal):

cat > /etc/NetworkManager/conf.d/dhcp.conf << "EOF"
[main]
dhcp=dhclient
EOF

为了防止NetworkManager更新/etc/resolv.conf文件,添加以下配置文件:

cat > /etc/NetworkManager/conf.d/no-dns-update.conf << "EOF"
[main]
dns=none
EOF

其他配置选项请参见man 5 NetworkManager.conf

为了允许普通用户配置网络连接,您应该将他们添加到netdev组,并创建一个授予访问权限的polkit规则。以root用户执行如下命令:

groupadd -fg 86 netdev &&
/usr/sbin/usermod -a -G netdev <username>

cat > /usr/share/polkit-1/rules.d/org.freedesktop.NetworkManager.rules << "EOF"
polkit.addRule(function(action, subject) {
    if (action.id.indexOf("org.freedesktop.NetworkManager.") == 0 && subject.isInGroup("netdev")) {
        return polkit.Result.YES;
    }
});
EOF

Systemd unit

要在引导时启动NetworkManager守护进程,请以root用户运行以下命令启用之前安装的systemd单元:

注意

如果使用Network Manager来管理一个接口,那么应该删除该接口以前的任何配置,并且在启动Network Manager之前关闭该接口。

systemctl enable NetworkManager

从1.11.2版本的NetworkManager开始,启用了一个名为NetworkManager-wait-online.service的系统单元,它用于阻止需要网络连接的服务启动,直到NetworkManager建立连接。要禁用此行为,以root用户运行以下命令:

systemctl disable NetworkManager-wait-online

内容

安装程序: NetworkManager, nmcli, nm-online, nmtui, 和, symlinked to nmtui: nmtui-connect, nmtui-edit, 和 nmtui-hostname

安装库: libnm.so 和 /usr/lib/NetworkManager 下的几个模块

安装目录: /etc/NetworkManager, /usr/include/libnm, /usr/lib/NetworkManager, /usr/share/doc/NetworkManager-1.42.0, /usr/share/gtk-doc/html/{libnm,NetworkManager} (if the documentation is built), 和 /var/lib/NetworkManager

简短描述

nmcli 是一个命令行工具,用于控制NetworkManager并获取其状态。

nm-online 是一个实用程序,用于确定您是否在线。

nmtui 是nmcli的一个基于ncurses的交互式用户界面。

nmtui-connect 是一个交互式的基于计数的用户界面,用于激活/取消激活连接。

nmtui-edit 是一个交互式的基于ncurses的用户界面,用于编辑连接。

nmtui-hostname 是用于编辑主机名的基于ncurses的交互式用户界面。

NetworkManager 是网络管理守护进程。

libnm.so 包含NetworkManager使用的函数。

16.4 network-manager-applet-1.30.0


简介NetworkManager Applet

NetworkManager Applet提供了一个工具和一个面板小程序,用于通过GUI配置有线和无线网络连接。它被设计用于任何使用GTK+的桌面环境,比如Xfce和LXDE。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

NetworkManager Applet 依赖

必要

GTK+-3.24.36, libnma-1.10.6, 和 libsecret-0.20.5

推荐

gobject-introspection-1.74.0ModemManager-1.18.12

必要 (运行时)

由于此包使用Polkit-122进行授权,因此当使用此包的功能时,应该运行一个Polkit Authentication Agent

可选

gnome-bluetooth-42.5libindicator

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/network-manager-applet

安装NetworkManager Applet

运行以下命令安装NetworkManager Applet:

mkdir build &&
cd    build &&

meson --prefix=/usr       \
      --buildtype=release \
      -Dappindicator=no   \
      -Dselinux=false     &&
ninja

要测试结果,执行: ninja test.

现在,作为root用户:

ninja install

命令解释

-Dappindicator=no: 这个开关在network-manager-applet中禁用AppIndicator支持,因为它需要libindicator,而libindicator不在BLFS中。如果没有此选项,构建将失败。

-Dselinux=false: 此开关强制禁用SELinux支持,因为它目前不在BLFS中,如果没有它,构建将失败。

-Dwwan=false: 此开关禁用WWAN支持。如果您没有安装ModemManager-1.18.12,请使用此选项。

内容

安装程序: nm-applet 和 nm-connection-editor

安装库: None

安装目录: None

简短描述

nm-connection-editor 允许用户查看和编辑网络连接设置。

16.5 Nmap-7.93


简介Nmap

Nmap是一个用于网络探索和安全审计的实用程序。它支持ping扫描、端口扫描和TCP/IP指纹识别。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Nmap 依赖

推荐

注意

建议使用这些包,因为如果没有安装它们,构建过程将编译并链接到自己的(通常是较旧的)版本。

libpcap-1.10.3, Lua-5.4.4, PCRE-8.45, 和 liblinear-245

可选

PyGTK-2.24.0 (zenmap需要), Python-2.7.18 (ndiff需要), 和 libssh2-1.10.0

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/nmap

安装Nmap

运行以下命令安装Nmap:

./configure --prefix=/usr &&
make

要测试结果,执行: make check as the root user. Tests need a graphical session.

现在,作为root用户:

make install

内容

安装程序: ncat, ndiff, nmap, nping, uninstall_ndiff, uninstall_zenmap, zenmap, 和两个链接到 zenmap: nmapfe 和 xnmap

安装库: None

安装目录: /usr/lib/python2.7/site-packages/{radialnet,zenmapCore,zenmapGUI}, 和 /usr/share/{ncat,nmap,zenmap}

简短描述

ncat 是从命令行跨网络读取和写入数据的实用程序。

ndiff 是一个帮助比较Nmap扫描的工具。

nmap 是一个用于网络探索和安全审计的实用程序。它支持ping扫描、端口扫描和TCP/IP指纹识别。

nping 是一个用于网络数据包生成、响应分析和响应时间测量的开源工具。

uninstall_ndiff 是一个用于卸载ndiff的Python脚本。

uninstall_zenmap 是一个Python脚本,用于卸载zenmap

zenmap 是一个基于Python的图形化nmap前端查看器。

16.6 Traceroute-2.1.2


简介Traceroute

Traceroute包包含一个程序,用于显示数据包到达指定主机所经过的网络路由。这是一个标准的网络故障排除工具。如果您发现自己无法连接到另一个系统,traceroute可以帮助查明问题所在。

注意

这个包覆盖LFS中安装在inetutils包中的traceroute版本。这个版本比标准版本更强大,允许更多的选项。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/traceroute

安装Traceroute

运行以下命令安装Traceroute:

make

这个包没有附带测试套件。

现在,作为root用户:

make prefix=/usr install                                 &&
ln -sv -f traceroute /usr/bin/traceroute6                &&
ln -sv -f traceroute.8 /usr/share/man/man8/traceroute6.8 &&
rm -fv /usr/share/man/man1/traceroute.1

由inetutils安装在LFS中的traceroute.1文件不再相关。这个包覆盖那个版本的traceroute,并安装man第8章中的手册页。

内容

安装程序: traceroute 和 traceroute6 (符号链接)

安装库: None

安装目录: None

简短描述

traceroute 它基本上是这样说的:它跟踪您的数据包从您正在处理的主机到网络上的另一台主机的路由,显示沿途所有的中间跳(网关)。

traceroute6 相当于 traceroute -6.

16.7 Whois-5.4.3


简介Whois

Whois是一个客户端应用程序,它查询Whois目录服务以获取与特定域名相关的信息。此软件包默认安装两个程序:whoismkpasswdmkpasswd命令也是通过LFS中的expect包安装的。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

Whois 依赖

可选

libidn-1.41libidn2-2.3.4

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/whois

安装Whois

使用以下命令构建应用程序:

make

您可以独立安装whois程序、mkpasswd程序和区域设置文件。以root用户的身份发出以下命令,控制你选择安装什么:

注意

安装这个版本的mkpasswd将覆盖在LFS中安装的相同命令。

make prefix=/usr install-whois
make prefix=/usr install-mkpasswd
make prefix=/usr install-pos

内容

安装程序: whois 和 mkpasswd

安装库: None

安装目录: None

简短描述

whois 是一个客户端应用程序,它查询whois目录服务以获取与特定域名相关的信息。

mkpasswd 生成新密码,并可选择将其应用于用户。

16.8 Wireshark-4.0.3


简介Wireshark

Wireshark包包含一个网络协议分析器,也称为“嗅探器”。这对于分析从实时网络连接“离线”捕获的数据或从捕获文件读取的数据非常有用。

Wireshark提供了图形和tty模式的前端,用于检查从500多个协议捕获的网络数据包,以及从许多其他流行的网络分析器读取捕获文件的能力。

已知此包可以使用LFS 11.3平台进行构建并正常工作。

包信息

额外下载

Wireshark 依赖

必要

CMake-3.25.2, GLib-2.74.5, libgcrypt-1.10.1, 和 Qt-5.15.8

推荐

libpcap-1.10.3 (需要捕获数据)

可选

asciidoctor-2.0.18, Brotli-1.0.9, c-ares-1.19.0, Doxygen-1.9.6, git-2.39.2, GnuTLS-3.8.0, libnl-3.7.0, libxslt-1.1.37, libxml2-2.10.3, Lua-5.2.4, MIT Kerberos V5-1.20.1, nghttp2-1.52.0, SBC-2.0, Speex-1.2.1, BCG729, libilbc, libsmi, lz4, libssh, MaxMindDB, Minizip, Snappy, 和 Spandsp

用户笔记: https://wiki.linuxfromscratch.org/blfs/wiki/wireshark

内核配置

内核必须启用Packet协议,Wireshark才能从网络中捕获实时数据包:

[*] Networking support --->          [CONFIG_NET]
    Networking options --->
        <*/M> Packet socket          [CONFIG_PACKET]

如果作为模块构建,则名称为 af_packet.ko.

安装Wireshark

Wireshark是一个非常庞大和复杂的应用程序。这些说明提供了额外的安全措施,以确保只允许受信任的用户查看网络流量。首先,为wireshark创建一个系统组。作为root用户:

groupadd -g 62 wireshark

继续执行以下命令安装Wireshark:

mkdir build &&
cd    build &&

cmake -DCMAKE_INSTALL_PREFIX=/usr \
      -DCMAKE_BUILD_TYPE=Release  \
      -DCMAKE_INSTALL_DOCDIR=/usr/share/doc/wireshark-4.0.3 \
      -G Ninja \
      .. &&
ninja

这个包没有附带测试套件。

现在,作为root用户:

ninja install &&

install -v -m755 -d /usr/share/doc/wireshark-4.0.3 &&
install -v -m644    ../README.linux ../doc/README.* ../doc/randpkt.txt \
                    /usr/share/doc/wireshark-4.0.3 &&

pushd /usr/share/doc/wireshark-4.0.3 &&
   for FILENAME in ../../wireshark/*.html; do
      ln -s -v -f $FILENAME .
   done &&
popd
unset FILENAME

如果您从“额外下载”中列出的页面下载了任何文档文件,请以root用户发出以下命令来安装它们:

install -v -m644 <Downloaded_Files> \
                 /usr/share/doc/wireshark-4.0.3

现在,将敏感应用程序的所有权和权限设置为只允许授权用户。作为root用户:

chown -v root:wireshark /usr/bin/{tshark,dumpcap} &&
chmod -v 6550 /usr/bin/{tshark,dumpcap}

最后,添加任何用户到wireshark组(作为root用户):

usermod -a -G wireshark <username>

如果您是第一次安装wireshark,您需要注销会话并重新登录。这样可以将wireshark放入您的组中,否则wireshark将无法正常工作。

配置 Wireshark

配置文件

/etc/wireshark.conf~/.config/wireshark/* (除非系统中已经存在~/.wireshark/*)

配置信息

虽然默认配置参数很简单,但请参考Wireshark User’s Guide中的配置章节进行配置。Wireshark的大部分配置都可以通过 Wireshark 图形界面的菜单选项来完成。

注意

如果您想查看数据包,请确保您没有使用iptables-1.8.9过滤它们。如果您想要排除某些类别的数据包,使用iptables比使用Wireshark更有效。

内容

安装程序: capinfos, captype, dumpcap, editcap, idl2wrs, mergecap, randpkt, rawshark, reordercap, sharkd, text2pcap, tshark, 和 wireshark

安装库: libwireshark.so, libwiretap.so, libwsutil.so, 以及/usr/lib/wireshark/plugins下的众多模块

安装目录: /usr/{include,lib,share}/wireshark 和 /usr/share/doc/wireshark-4.0.3

简短描述

capinfos 读取已保存的捕获文件,并返回有关该文件的部分或全部统计信息。它能够检测和读取Wireshark包支持的任何捕获。

captype 打印捕获文件的文件类型。

dumpcap 是一个网络流量转储工具。它允许您从活动网络捕获数据包数据,并将数据包写入文件。

editcap 编辑和/或翻译捕获文件的格式。它知道如何读取libpcap捕获文件,包括tcpdump、Wireshark和其他以该格式写入捕获的工具的捕获文件。

idl2wrs 是一个程序,它接受用户指定的CORBA IDL文件,并为Wireshark“插件”生成“C”源代码。它依赖于两个Python程序wireshark_be.pywireshark_gen.py,这两个程序默认情况下没有安装。它们必须手动从tools目录复制到$PYTHONPATH/site-packages/目录。

mergecap 将多个保存的捕获文件合并为单个输出文件。

randpkt 创建随机包捕获文件。

rawshark 转储和分析原始libpcap数据。

reordercap 将输入文件帧的时间戳重新排序到输出文件中。

sharkd 是一个监听UNIX套接字的守护进程。

text2pcap 读入ASCII十六进制转储,并将所描述的数据写入libpcap风格的捕获文件。

tshark 是一个tty模式的网络协议分析器。它允许您从活动网络中捕获数据包数据,或者从先前保存的捕获文件中读取数据包。

wireshark 是Qt GUI网络协议分析器。它允许您交互式地浏览来自实时网络或先前保存的捕获文件的数据包数据。

libwireshark.so 包含Wireshark程序的过滤和抓包功能。

libwiretap.so 是一个正在开发的库,作为libpcap的未来替代品,libpcap是当前用于数据包捕获的标准Unix库。有关更多信息,请参阅源代码wiretap目录中的README文件。

上一页      主目录      下一页