在我的机器上,我使用的是使用 tun0 接口的 OpenVPN。我希望 sshd 只在这个接口上监听。
我知道,我可以指定要收听的 IP 地址
/etc/ssh/sshd_config
Run Code Online (Sandbox Code Playgroud)
与
ListenAddress 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
指示。但是我的IP地址会改变,所以我不能在这里选择一个总是有效的IP。我知道只有当 VPN 启动时我才能启动守护程序 - 这不是问题。
如何让 sshd 只侦听特定接口 (tun0)?
我有一台带有 2 个网络接口的计算机。一个接口连接到 IP 为 192.168.0.254 的 LAN 网络,另一个连接到记录仪服务器(192.168.0.233)。192.168.0.10 是 LAN 的网关。当我尝试ping 192.168.0.6时,Windows首先尝试路由到没有网络的接口(192.168.0.233);我想添加到 192.168.0.6/255.255.255.0 的路由,指定当我尝试 ping 192.168.0.6 时我想使用接口 192.168.0.254。我试过了:
route add 192.168.0.6 mask 255.255.255.0 192.168.0.10 if 13
Run Code Online (Sandbox Code Playgroud)
这是我的界面的打印件:

当我将静态路由添加到表中时,它不显示指定的接口,仅将其关联到网关。

这是正确的吗?
作为 Linux 管理员,您已经安装了一个带有 6 个 NIC eth0 到 eth5 的全新 Linux 机器。eth0 接口已正确配置,所有其他接口当前都已启动但没有 IP 地址。网络人员简单地将四根电缆连接到这个盒子上。两根 LAN 电缆用于将盒子连接到生产网络,两根用于将盒子连接到专用网络。你只知道eth0连接到生产网络。但是您不知道哪个其他 NIC 连接到同一交换机,因为存在不同的服务器代和/或网络人员使用错误的 NIC 进行连接。
由于此设置是您的基础架构的典型设置,因此您希望自动配置绑定接口。现在您的任务是检测哪些 NIC 根本没有连接,哪些 NIC 链接到同一交换机,以便它们可以绑定。您只能访问 Linux 机器,而不能查询交换机。
ethtool $device | grep 'Link detected' | cut -d ':' -f 2
Run Code Online (Sandbox Code Playgroud)
在 HP-UX 中有一个用于此目的的工具,称为linkloop [1]。缺少官方的 Linux 工具(不过有一个旧的 SourceForce 项目)。
我已经想到的可能解决方案是:
使用 tcpdump 侦听所有接口。制作并发送 ICMP(广播)数据包。看到该数据包的接口需要连接到同一交换机。-> 需要可能用于此的简单工具的建议。我想使用普通的 shell 命令或 Python 来编写脚本。
尝试通过一些简单的协议(HTTP?)与外部盒子对话,看看是否有响应。-> 容易出错并且依赖于外部盒子。
您对如何解决此任务有进一步的想法或建议吗?
预先感谢您的所有评论!
我有一个有 2 个接口的服务器。eth0 比 eth1 快 100 倍。尽管出于某种原因,每次重新启动时,都会随机选择默认界面。更烦人的是,它们都使用相同的网关,因此选择默认网关不起作用。linux如何选择默认界面,如何选择默认界面?
这是我route -n的帮助解释一下情况。
Destination Gateway Genmask Flags Metric Ref Use Iface
173.246.100.0 0.0.0.0 255.255.252.0 U 0 0 0 eth1
173.246.100.0 0.0.0.0 255.255.252.0 U 0 0 0 eth0
0.0.0.0 173.246.103.254 0.0.0.0 UG 0 0 0 eth1
0.0.0.0 173.246.103.254 0.0.0.0 UG 100 0 0 eth0
Run Code Online (Sandbox Code Playgroud)
附注。这是一个 VPS,所以我的提供商也可能在某处有问题。第二个接口的原因是为了dns有另一个IP,因为它只做DNS,速度很慢。
编辑:这是一个 Ubuntu 10.04 服务器
这是 ifconfig 的输出
# ifconfig
enp0s3 Link encap:Ethernet HWaddr 08:00:27:ef:b6:e6
inet addr:192.168.2.3 Bcast:192.168.2.255 Mask:255.255.255.0
inet6 addr: fe80::cf19:776a:4d5c:36e0/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:713069 errors:0 dropped:0 overruns:0 frame:0
TX packets:6767 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:45869812 (45.8 MB) TX bytes:667164 (667.1 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:1108 errors:0 dropped:0 overruns:0 frame:0
TX packets:1108 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:86846 (86.8 KB) …Run Code Online (Sandbox Code Playgroud) 我的要求是创建多个 tap 接口,每个接口在同一子网上都有 ip 地址。
我通过创建一座桥来尝试这个
br0 (192.168.1.199)
___________|_____________________________________
| | | | | |
eth0 tap0 tap1 tap2 tap3 tap4
(192.168.1.150) (.151) (.152) (.153) (.154)
Run Code Online (Sandbox Code Playgroud)
我需要可以从外部 PC 访问所有 Tap 接口。当我从 tap0 ping 到外部计算机时说 192.168.1.200
ping -I tap0 192.168.1.200 -- the ping is not going through.
Run Code Online (Sandbox Code Playgroud)
但是当我从 192.168.1.200 ping 到 192.168.1.150 (tap0) 时它正在工作,但我得到了网桥的 mac 地址 (br0)
我有两个问题:
我正在查看 Linux 系统上接口的状态。当我使用该ifconfig命令时,它显示链接已打开。
master $ ifconfig docker0
docker0 Link encap:Ethernet HWaddr 02:42:b9:25:be:2d
inet addr:172.18.0.1 Bcast:0.0.0.0 Mask:255.255.255.0
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
Run Code Online (Sandbox Code Playgroud)
但是,当我运行ip link命令时,它已关闭。
master $ ip link show docker0
3: docker0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN mode DEFAULT group default
link/ether 02:42:b9:25:be:2d brd ff:ff:ff:ff:ff:ff
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下吗?
假设我有一台机器在不同的子网上有两个网络适配器,eth0(10.0.100.5) 和eth1(10.0.200.5)。假设两个子网都有到 Internet(通过它们自己的 NAT)和到本地网络的其余部分(通过它们自己的交换机)的路由:
AWS VPC 环境,其他运行 Ubuntu 12.04 的机器,不知道我试图影响的机器正在运行(因为我无法登录)。
说明:
/24s我有多个 USB 转以太网设备,它们都插在同一台电脑上。
有没有办法通过 USB 端口/等识别哪个映射到哪个 eth* 网络接口?
我试过查看 lsusb 和 /proc,但没有找到任何有用的东西。
我有一个网络问题,其中源 MAC 与我的主机的源 MAC 之一匹配的帧到达主机 - 明显的重复 MAC、循环或其他 L2 问题。
我相信这是这种情况,因为我的 linux 网桥的 MAC 表(CAM 表)将本地 MAC(用于托管虚拟机)注册为在上游端口上,并且内核日志显示错误:
bridgename: received packet on bond0.2222 with own address as source address
Run Code Online (Sandbox Code Playgroud)
我想获得有关这些“流氓”数据包/帧的更多详细信息,但我不知道如何将它们归零。使用 tcpdump 您可以过滤特定的源 MAC( 'ether src MAC' ),但这是基于帧中的字节 - 而不是帧是“发送”还是“接收”。我们通常假设带有源 MAC 的帧意味着我们将其发送出去,但如果接收到重复的帧,则过滤器的内容看起来完全相同。
如何观察在数据包捕获中是接收帧还是发送帧?