决定udp_tunnel模块是否编译进内核的配置选项是CONFIG_NET_UDP_TUNNEL,而Ubuntu的.config中的CONFIG_NET_UDP_TUNNEL是M,应该不会自动加载进内核,但下面的结果却显示udp_tunnel已经加载进内核了,这让我很疑惑。
$ modinfo udp_tunnel
filename: /lib/modules/5.3.0-51-generic/kernel/net/ipv4/udp_tunnel.ko
license: GPL
srcversion: 0A315BA6124B0664F4D23FB
depends:
retpoline: Y
intree: Y
name: udp_tunnel
vermagic: 5.3.0-51-generic SMP mod_unload
signat: PKCS#7
signer:
sig_key:
sig_hashalgo: md4
$ echo $?
0
显示模块 udp_tunnel 已加载到内核中,并且
答案1
查找有关模块的信息并不意味着它已被加载。modinfo 也会查找/lib/modules/version
它。
如果您想知道它是否已加载,请使用 lsmod。例如:
doug@s18:/boot$ lsmod | grep udp
xt_tcpudp 20480 9
x_tables 45056 9 xt_conntrack,iptable_filter,xt_tcpudp,xt_CHECKSUM,ip6_tables,ipt_REJECT,ip_tables,xt_MASQUERADE,iptable_mangle
现在,如果强制加载模块:
doug@s18:/boot$ sudo modprobe udp_tunnel
[sudo] password for doug:
doug@s18:/boot$ lsmod | grep udp
udp_tunnel 16384 0
xt_tcpudp 20480 9
x_tables 45056 9 xt_conntrack,iptable_filter,xt_tcpudp,xt_CHECKSUM,ip6_tables,ipt_REJECT,ip_tables,xt_MASQUERADE,iptable_mangle