linux - 监听Socket并复制到另一个端口

标签 linux sockets

我知道每个端口只能分配给一个应用程序。但是,我想这样做:

(1) 我想监控一个端口,例如 80。该端口已被另一个应用程序分配,例如 Apache

(2) 我可以复制发送到该端口的每个套接字,并将这些端口重定向到另一个端口

我搜索过tcpdump,它可以捕获数据包(包含全部内容)。但我不知道如何复制数据包然后将它们发送到另一个端口?

或者,也许还有其他工具可以轻松捕获数据包?

如果我想自己实现,可以给我一些细节吗?因为我不擅长socket编程。

最佳答案

正如您正确指出的那样,您将无法使用套接字轻松地从端口 80 获取数据包。这是因为如果第二个套接字也接收该端口的数据包,那么它将需要重用该端口(SO_REUSEADDR 选项)。如果应用程序是第三方的并且您无法将此选项设置为服务器套接字,那么这将不起作用。您可能可以尝试检查 scapy,它有一个嗅探数据包的选项,看看它是否满足我们的要求:http://www.secdev.org/projects/scapy/doc/usage.html

关于linux - 监听Socket并复制到另一个端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18502170/

相关文章:

java - GZIPInputStream 无法在接收方解码(设置的代码长度无效)

python - pyBluez python 服务器 - 手机看不到我的服务器

Java Socket 类转换异常

sockets - 绑定(bind)失败并出现无效参数错误

c - 带接收超时的套接字 : What is wrong with this code?

linux - 共享对象名称冲突

linux - 目录输入卫生

linux - 如何使用 bash 锁定文件

linux - 删除 NAT 映射时会发生什么

Python无法连接到同一网络上的打开套接字