如果我在 Linux 机器(这里:Debian Lenny)上有多个网络接口(这里:2)。我如何查看到特定目标主机的路由通过哪个网络接口 (NIC) 进行以及默认使用哪个源 IP 地址?
我虽然使用
ping -I nic1 desthost.example.com
ping -I nic2 desthost.example.com
Run Code Online (Sandbox Code Playgroud)
也看看这两种方式是否可行。(这里:两种方式都可以)
我查了路由表
ip route show
Run Code Online (Sandbox Code Playgroud)
但它相当复杂,所以我想,必须有一个简单的小工具,告诉我:
“到目标主机 desthost.example.com 它需要接口 nicX 和源 IP 地址 10.0.0.1”
获取这些信息的最简单方法是什么?
(而且我宁愿不使用 tcpdump 并将接口设置为混杂模式。)
谢谢。
如何从 Linux禁用IPv4堆栈?我想动态地做到这一点,即有时我想要启用它,有时我只想要IPv6堆栈。有没有便携的方法来做到这一点?如果你知道如何在任何发行版中做到这一点,它也会对我有很大帮助。
在服务器节点上,可以访问导出的文件夹。但是,在重新启动(服务器和客户端)后,客户端将无法再访问该文件夹。
在服务器上
# ls /data
Folder1
Forlder2
Run Code Online (Sandbox Code Playgroud)
并且 /etc/exports 文件包含
/data 192.168.1.0/24(rw,no_subtree_check,async,no_root_squash)
Run Code Online (Sandbox Code Playgroud)
在客户端
# ls /data
ls: cannot access /data: Stale NFS file handle
Run Code Online (Sandbox Code Playgroud)
我不得不说客户端的共享文件夹没有问题,但是在重新启动(服务器和客户端)后,我看到了这条消息。
有什么办法可以解决吗?
我们已经使用本教程设置了一个 L2TP VPN 服务器,一切都像魅力一样。
唯一的问题是
我们不希望客户端使用此 VPN 路由所有流量,仅路由特定子网,例如 10.0.0.0/20
在 Mac 上,我们需要使用命令手动设置路由,但对于移动设备,似乎没有办法这样做?
那么,是否可以为子网“10.0.0.0/20”自动配置客户端?
在查看各种 Linux 和 FreeBSD 系统时,我注意到在某些系统上/etc/hosts包含主机公共主机名的条目,但在其他系统上没有。
这里的最佳做法是什么?我的 /etc/hosts 文件是否应该包含主机 FQDN(例如 myhost.example.org)和短主机名(例如 myhost)的条目?FQDN 的记录应该指向本地主机还是应该指向盒子的外部 IP?
例如,许多 RHEL/EL 机器上的默认配置不会将公共主机名放入/etc/hosts:
myhost # cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
myhost #
Run Code Online (Sandbox Code Playgroud)
另一个变体是主机的短主机名和 FQDN 也指向 127.0.0.1。有人告诉我,这是一种较旧的做法,现在不受欢迎,但很多管理员仍然这样做。
myhost # cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 myhost myhost.example.org
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
myhost #
Run Code Online (Sandbox Code Playgroud)
第三种变体是主机的 FQDN 和短主机名被赋予主机的外部 IP 地址。这第三个变体对我来说似乎是最佳的,因为它减少了对 DNS 服务器的查找。
myhost # cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
74.125.239.xxx …Run Code Online (Sandbox Code Playgroud) 使用ip netns exec您可以在自定义网络命名空间中执行命令 - 但是否还有一种方法可以在默认命名空间中执行命令?
例如,执行这两个命令后:
sudo ip netns add test_ns
sudo ip netns exec test_ns bash
Run Code Online (Sandbox Code Playgroud)
新创建的 bash 如何在默认网络命名空间中执行程序?据我所知,没有ip netns exec default或任何类似的东西。
我的场景是:
我想在单独的网络命名空间中运行 SSH 服务器(以使系统的其余部分不知道网络连接,因为系统用于网络测试),但希望能够通过以下方式在默认网络命名空间中执行程序SSH 连接。
到目前为止我发现了什么:
创建的网络命名空间被列为 /var/run/netns 下的文件(但默认命名空间没有文件)
该IP netns EXEC代码可以在这里找到:http://git.kernel.org/cgit/linux/kernel/git/shemminger/iproute2.git/tree/ip/ipnetns.c#n132 -我还没有掌握一切它正在做,但看起来不太有希望。
ip netns按照Howto 在 linux 上查询和更改网络命名空间的建议识别 $$ ?在默认网络命名空间中时不返回任何内容
我对特定的答案感兴趣:
更多细节:
我正在对一个 IPSec 实现的性能问题进行故障排除。问题是可用带宽并没有在所有 4 个 VPN 隧道中均匀分布(大约分布为 200MBps/200MBps/1MBps/1MBps;每个 VPN 隧道封装单个 TCP 连接)。在 PCAP 中,我偶尔会看到网络服务器空闲大约 2 秒(等待 ACK)。当网络服务器重新传输未确认的段时,下载恢复。
我对 PCAP 的看法是 NIC GRO 功能将数据包粘合在一起,但有时不会将它们及时传递到 TCP 堆栈,这导致了问题。
由于此 VPN 服务器没有终止 TCP 连接而仅转发数据包的接口。然后我尝试禁用 GRO,之后我观察到流量在所有隧道中均匀分布。此外,当在 Web 服务器上禁用 TCP 窗口缩放时,即使启用了 GRO,带宽也会被分配(这就是我遇到问题 #3 的原因)。
我在 Ubuntu 10.04 服务器(64 位)上使用 2.6.32-27 linux。网卡是英特尔 82571EB。所有接口(HTTP 客户端、VPN 客户端、VPN 服务器、Web 服务器)都通过 …
我希望在公共活动中提供 wifi 服务。流量将非常小,10KBps 应该足够了。用户不一定需要连接到私有 Intranet 以外的任何东西。
假设所有 10k 用户将同时使用网络,我该从哪里开始寻找解决方案?
我想测量使用了多少带宽git pull,最好是在 git 命令前面加上所需的程序,即nettally git pull
或者,是否有一些偷偷摸摸的方法来累积 nethogs/wireshark 数据并在执行后将数字相加?
谢谢
2 台 linux 主机之间的延迟约为 0.23 毫秒。它们由一个交换机连接。Ping 和 Wireshark 确认延迟数。但是,我对导致这种延迟的原因一无所知。我如何知道延迟是由于主机 A 或 B 上的 NIC 还是交换机或电缆造成的?
更新:0.23 毫秒的延迟对我现有的应用程序不利,它以非常高的频率发送消息,我想看看它是否可以降低到 0.1 毫秒