标签: linux-networking

如何将 UDP 流量从一个公共 IP (linux) 路由到另一个公共 IP (Windows)

我想阻止直接访问我的 Windows 计算机,并希望通过我的 Linux 计算机(同样可以通过公共 IP 访问)公开在其上运行的一些程序。

有没有一种方法可以配置我的 Linux 机器(比如 IP = ),将其在特定端口(比如 )获得的a.b.c.d)所有流量路由到我的 Windows 机器(比如 IP = )的端口?UDP6667e.f.g.h6668

是的,我该如何实施呢?

更新

# bindadress    bindport  connectaddress  connectport

192.168.2.45    6667    192.168.2.104   6668

# logging information
logfile /var/log/rinetd.log

# uncomment the following line if you want web-server style logfile format
logcommon
~          
Run Code Online (Sandbox Code Playgroud)

更新

UDP只想路由流量。

ip route forwarding linux-networking

3
推荐指数
1
解决办法
2万
查看次数

如何创建永久的Linux网络命名空间

我知道该ip netns add xxx命令可用于创建 Linux 网络命名空间,但它不是永久性的,这意味着服务器重新启动后创建的命名空间将消失。

那么我怎样才能创建一个可以在服务器重启后仍然存在的永久的呢?

linux-networking iproute2 network-namespace

3
推荐指数
1
解决办法
6731
查看次数

如何在 Linux (Redhat/Centos) 中物理关闭网络接口

有没有办法从命令行关闭 Linux 机器上的网络接口?我所说的关闭是指按照思科交换机的“关闭”命令关闭链路电源。ipifconfig甚至rmmod <driver>当用于关闭端口时也不会断开链接;即使使用这些实用程序/方法禁用端口,另一端的设备仍然可以看到连接。

从技术上讲,在设备级别我确信这是可以完成的,因为当我执行

ip link set em1 down
ip link set em1 up
Run Code Online (Sandbox Code Playgroud)

...然后在“启动”阶段,NIC 会关闭大约 3-4 秒(如在连接到该 NIC 的交换机端口以及端口的状态 LED 上看到的那样)。

我正在寻找的是一个可以执行该任务的命令行实用程序。我在使用板载 Broadcom 网卡的 Dell R610 上安装了 CentOS 7.2。

至于为什么……

当您可以在交换机中弹跳接口时,仔细检查网络连接确实非常简单且有用。

“但是有 lldp”。除非没有,例如第 1 层交换机。(谷歌“Metamako”了解更多信息)。能够切换服务器网络接口可以验证 2000 英里外的布线。

“但你已经可以在交换机端做到这一点了。” 是的,这不是很光荣吗?服务器管理员是否可以在服务器端使用该功能。

“但如果你无法连接到主机,那么它就已经死了。” 考虑一下具有 8 个实时网络接口的系统。您可以通过板载接口轻松登录系统,并且可以关闭许多 PCIe 网卡。

linux redhat linux-networking

3
推荐指数
1
解决办法
2万
查看次数

如何在 debian 8 上通过重新启动来保留 ethtool 设置

您好,我如何在 debian 8 上通过重新启动来保留以下设置?

ethtool -K eth0 lro off
ethtool -K eth1 lro off
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用以下选项将其添加到 /etc/network/interfaces.d/ifcfg-bond0 下:

ETHTOOL_OPTIONS='-K eth0 lro off'
ETHTOOL_OPTIONS='-K eth1 lro off'
Run Code Online (Sandbox Code Playgroud)

但这行不通。有人可以帮我吗?

debian linux-networking

3
推荐指数
1
解决办法
1万
查看次数

列出 vlan 的父接口

我在物理接口上设置了一堆 VLAN 接口。

Physical interface: eth1
VLANS on top of this: vlan1, vlan2, vlan3
Run Code Online (Sandbox Code Playgroud)

现在,我想知道我的vlan的父接口是哪个(例如,这里eth1是这些vlan的父接口)。

我可以通过运行“ip addr show vlan-name”来获取此信息,然后在输出中,我将得到 vlan1@eth1,但我需要解析此命令的输出或通过查看我的网络配置文件,解析它并解释它。

有没有其他方法可以让我无需任何解析逻辑即可获取此信息?例如,对于绑定接口,信息存在于 /sys/class/net/ 目录中,并且可以简单地读取那里的文件。

# cat /sys/class/net/bond0/bonding/slaves
eth0 eth1
Run Code Online (Sandbox Code Playgroud)

是否有类似的路径/文件可用于 VLAN 标记的接口?我无法弄清楚是否有一些文件我可以直接读取而无需任何解析并提取此信息或任何仅提供父接口名称的命令/实用程序。

请告诉我是否还有其他替代方案。

谢谢。

networking linux ubuntu vlan linux-networking

3
推荐指数
1
解决办法
1万
查看次数

更改 iptables 中的 MSS

我有两个设置,我想更改流经系统的数据包的 MSS。在第一个中,我将 enp2s0 和 enp3s0 设置为桥接器。有没有办法让 iptables 在入站数据包传回之前修改其 MSS?

[root@localhost network-scripts]# ip a s
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp1s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN qlen 1000
    link/ether 00:60:e0:6f:8c:62 brd ff:ff:ff:ff:ff:ff
3: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP qlen 1000
    link/ether 00:60:e0:6f:8c:63 brd ff:ff:ff:ff:ff:ff
4: enp0s31f6: …
Run Code Online (Sandbox Code Playgroud)

iptables tcp linux-networking

3
推荐指数
1
解决办法
2万
查看次数

为什么 iptables 中所有目标的 ACCEPT all 不允许端口 8445?

我有一个测试服务器,它具有以下 IPtables 配置:

[root@rhel64 /]# iptables --list
Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED
ACCEPT     icmp --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination
REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
Run Code Online (Sandbox Code Playgroud)

当我尝试访问侦听端口 8445 的应用程序时,它被拒绝。一旦我添加了一条规则专门允许 8445 的 tcp …

linux redhat iptables linux-networking

3
推荐指数
1
解决办法
2584
查看次数

在 Fedora 30 上如何重启网络服务?

在 RHEL/Fedora 上的早期版本中,network可以通过 init 脚本和(稍后)通过systemctl. 更新 DNS 设置后,我想重新启动网络服务以反弹接口并获取新的 DNS 设置(并强制 NetworkManager 重写/etc/resolve.conf)。

使用systemctl,我得到:

# systemctl restart network
Failed to restart network.service: Unit network.service not found.
Run Code Online (Sandbox Code Playgroud)

在哪儿network服务去,我如何重启接口以皮卡的变化?

fedora linux-networking

3
推荐指数
1
解决办法
2万
查看次数

只有一个 TCP 套接字(通过 nc)能够同时向同一主机/端口发送数据

简单的重现 - 在一个窗口中观察顶部的进程,在另一个窗口中运行:nc -lkp 10000 > /dev/null & ( head -50000000 /dev/urandom | nc -N 127.0.0.1 10000 ) & ( head -50000000 /dev/urandom | nc -N 127.0.0.1 10000 )

请注意,只有一个head进程nc正在主动使用 CPU。

将 strace 附加到head不活动的 - 看到它在写入时停止,例如:

strace: Process 589084 attached
write(1, "\264\347\270\26\27\24'BRb^\353\302\36@\216\17V\210*n\252`\353\330\351\276\2\250\330\350\217"..., 4096^Cstrace: Process 589084 detached
 <detached ...>
Run Code Online (Sandbox Code Playgroud)

在不同的端口上设置两个侦听器 - 例如 10000 和 10001,并且两者都全速运行。

这是一个简单的示例,但我可以使用其他输入和输出来重现它 - 例如 zcatting 大文件并通过网络将它们发送到生产服务。这与输入无关,也与监听套接字无关。

那么 - 为什么我只能有一个 tcp 连接到任何给定的主动发送数据的主机/端口?

有一个独立的数据源(如果您不相信我,请随意实验),以及一个打开自己的 TCP 连接的独立进程(netstat将显示它们都打开) - 唯一的共同点是目的地(它不必须nc倾听 …

linux linux-networking

3
推荐指数
1
解决办法
1341
查看次数

如何将流量从某个 IP/主机路由到同一端口上的另一个主机/IP

我遇到过这样的情况:我的客户关闭了他的旧 Linux 主机(examplehost01.example.com),该主机运行在端口上侦听的应用程序7001,他在其中创建了新服务器,并且他们希望将所有流量移至新服务器(examplehost02.example.com)。

examplehost01.example.com: 7001 (old Server)
examplehost02.example.com: (New Server)
Run Code Online (Sandbox Code Playgroud)

examplehost01.example.com我们如何将端口上服务器上的所有流量重定向到端口上的7001新服务器?examplehost02.example.com7001

这些服务器位于同一网络中。

任何帮助将非常感激。

routing iptables linux-networking

3
推荐指数
1
解决办法
2607
查看次数