22.04安装rpcapd时出错

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
回复
a444777
帖子: 2
注册时间: 2023-07-27 13:42
系统: Ubuntu22.04

22.04安装rpcapd时出错

#1

帖子 a444777 » 2023-07-27 13:50

大家好,我想在windows上使用wireshark对linux端口进行监听。
在ubuntu22.04中下载了rpcapd。
按照以下流程

--------------------------------------------------------------
#install rpcapd
sudo apt-get build-dep libpcap -y
git clone https://github.com/frgtn/rpcapd-linux
cd ./rpcapd-linux/libpcap
./configure
make
cd ..
make
#start rpcapd
sudo ./rpcapd -4 -n -p 8888
#-p 指定rpcapd进行监听的端口
#-n 不启用认证功能,任何主机都可以访问rpcapd进行
--------------------------------------------------------------
当我执行第一个make时候,出现了错误,如附件图所示。

root@lins:/home/lins/rpcapd-linux/libpcap# make
gcc -static -O2 -fPIC -I. -DHAVE_CONFIG_H -D_U_="__attribute__((unused))" -DHAVE_REMOTE -c ./pcap-linux.c
./pcap-linux.c: In function ‘pcap_read_packet’:
./pcap-linux.c:1005:31: error: ‘SIOCGSTAMP’ undeclared (first use in this function); did you mean ‘SIOCGRARP’?
1005 | if (ioctl(handle->fd, SIOCGSTAMP, &pcap_header.ts) == -1) {
| ^~~~~~~~~~
| SIOCGRARP
./pcap-linux.c:1005:31: note: each undeclared identifier is reported only once for each function it appears in
make: *** [Makefile:80:pcap-linux.o] 错误 1


但是当我在ubuntu18.04上执行make时候,却是可以正常安装并执行监听的。

请问怎么办? :Cry
附件
01e6934cfa3d09179fdcfa1b11f0293.png
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: 22.04安装rpcapd时出错

#2

帖子 astolia » 2023-07-28 10:03

编辑pcap-linux.c,在最前面加一句

代码: 全选

#include <linux/sockios.h>
a444777
帖子: 2
注册时间: 2023-07-27 13:42
系统: Ubuntu22.04

Re: 22.04安装rpcapd时出错

#3

帖子 a444777 » 2023-07-28 10:52

感谢您,确实可以这样
但是在我执行第二个make时候,又出错了 :Cry
头像
astolia
论坛版主
帖子: 6703
注册时间: 2008-09-18 13:11

Re: 22.04安装rpcapd时出错

#4

帖子 astolia » 2023-07-29 12:33

a444777 写了: 2023-07-28 10:52 感谢您,确实可以这样
但是在我执行第二个make时候,又出错了 :Cry
你自己去看github仓库的状态,这个东西最后一次代码更新是7年前了。也就是说,如果你要继续用它,就必须自行处理这7年间所有内核相关的兼容性变化。
直接按照说明编译libpcap可能是个更好的办法
An rpcapd executable is generated in libpcap v1.9.0 and later, when compiled with the --enable-remote flag (./configure --enable-remote && make). That should be used instead of this fork.
回复