![在 Linux 中创建界面](https://linux22.com/image/541099/%E5%9C%A8%20Linux%20%E4%B8%AD%E5%88%9B%E5%BB%BA%E7%95%8C%E9%9D%A2.png)
我与第三方计算机建立了隧道。此隧道 iface 的 IP 地址为 10.244.248.126。第三方刚刚告诉我,有一个 ACL 只允许 10.245.1.224/28 范围内的 IP。我很想使用给定范围内的 IP 地址发出 telnet -b,但我没有具有此范围内 IP 地址的接口。如何创建这样的接口以便可以正确进行 telnet?如何路由它?
提前致谢
更新:现在我可以根据响应进行绑定,但我在 telnet -b 上超时了。查看 tcpdump 似乎它正在转到错误的接口,但我对此不确定,因为我不知道 MAC 地址是否应该来自我的虚拟 iface。以下是 iface、隧道和路由表:
https://gist.github.com/847934
答案1
为您的网卡配置添加别名:
ifconfig eth0:telnet 10.245.1.225 netmask 255.255.255.240
您已经有隧道,因此路由应该可以正常工作。或者现在路由是如何定义的?您可能需要添加路由,但我们需要有关您的连接的更多信息。首先测试是否
ping 10.244.248.126
有效。然后使用“-b”启动 telnet 会话
telnet -b eth0:telnet 10.244.248.126
答案2
如果我理解正确的话,您需要定义一个虚拟接口,以便能够将新地址用作 telnet 中的绑定地址。简单来说,可以使用以下命令完成此操作:
$ sudo ifconfig eth0:0 <your_ip_address> netmask <your_mask> up
当然,您需要用适当的值替换和标记IP。
对于路由部分,它取决于您的网络设置和寻址。
答案3
此外,telnet -b 不会从接口取消引用 IP(至少在我见过的任何 Linux 机器上都不会)。您实际上需要指定所需的 IP。
(有一种观点认为应该像这样工作,我对此表示同情。我编写的任何新套接字代码都可能支持这个选项,我可能会将其修补到一些东西中。老实说,我不知道你可以做 eth0:[string],我实际上以为你必须做 eth0:[number])
答案4
我认为您可能需要一个与物理 NIC 桥接的 TUN/TAP 接口。您需要 uml-utilities 来实现这一点。我经常使用它来模拟网络。命令是隧道
或者,你可以更改现有的隧道以反映新的 IP 子网
编辑:查看您的配置,我认为您需要设置一个桥接器(brctl?)。当您创建新接口时,如何确保它们与您的物理 NIC 通信?