【发布时间】:2020-04-26 12:38:12
【问题描述】:
环境: C代码,Linux
什么: 我想在路由器上使用 UPNP 为 SSH 协议打开一个端口。 我知道如何使用 miniupnpc 库来做到这一点。 我可以发送 UPNP 请求,该请求包括: 要重定向的外部端口 要重定向到的内部端口 接受 SSH 流量的内部机器地址。
问题: 如果内部机器有多个 eth 接口,我该如何找到合适的?
例如: 说我有:
eth0, address 10.10.10.1 [WAN connection]
eth1, address 20.20.20.1 [No WAN connection]
eth0 是连接路由器的接口,可以访问广域网。 eth1是连接内网的接口,无法接入广域网。
发送的 UPNP 请求应包含:
External port: 2222
Internal port: 22
Local machine address: 10.10.10.1 [eth0]
问题:
如何从 C 代码中检测访问 WAN 的接口? 我不应该运行外部脚本,只运行 C 代码。 外部库使用没问题。
【问题讨论】:
标签: c linux networking routes upnp