在使用/etc/network/interfaces(例如 Debian)的Linux 发行版中,我可以获得一个(内核)桥来使用其静态桥从接口之一的 MAC48 地址,例如内置的wlan0,使用post-up,如下所示:
post-up ip link set br0 address `cat /sys/class/net/wlan0/address`
Run Code Online (Sandbox Code Playgroud)
这确保了 1) 每个克隆系统都使用其自己独特的 MAC48(来自独特 wlan0 的那个),以及 2) 即使在热插拔具有较低 MAC48 的其他桥接接口时,桥 MAC 也能保持稳定。
systemd-networkd 是否支持任何类型的 post-up在网络(或 netdev)启动后可以运行的命令?我试图找到这样的东西,但可能已经错过了。
或者 systemd 中的正确方法是否完全不同,即拥有一个设备单元和一个包装ip link...命令并依赖于设备单元的服务?如果是这样,设备单元和服务单元文件会是什么样子?
我正在查看 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)
有人可以解释一下吗?
嗨,这是一种情况,我在公司数据中心有一台用于项目的服务器。我在端口 22 上可以通过 SSH 访问这台机器。在这台服务器上运行着一些虚拟机,然后在许多其他操作系统正在运行的每件事的背后。现在,由于我在数据中心防火墙后面,我的主管问我是否可以做一些事情,让互联网上的许多人直接访问这些虚拟机。我知道如果我被允许在 22 以外的端口上获得流量,那么我可以进行端口转发。但是由于我不允许这样做,所以在这种情况下可以解决什么问题。想要连接的人可能完全是白痴。他们可能只是在他们的机器上打开腻子就很高兴,甚至可能是 filezilla。
我手上没有防火墙,也没有打开 22 以外的任何端口,事实上,即使我要求他们也不允许打开。2 次 SSH 不是我的主管想要的东西。
我不是我们公司网络的系统管理员,但我有两个 Linux 工作站(主机 A 和 B),它们都具有 root 访问权限。
两个主机都可以很好地看到对方(ssh、ping 等从一个到另一个工作)。但是,只有主机 A 可以伸出我们公司的防火墙并访问 Internet 等;主机 B 不能。
问题:如何在不涉及我的系统管理员的情况下通过主机 A 路由主机 B 上的所有(而不仅仅是 HTTP)传出和传入网络流量?现在,我不知道是否需要对主机 B 使用 NAT,和/或将主机 A 设为代理服务器,和/或将主机 A 设为路由器。
在主机 B 上,我尝试发出route add -host <HostA> gw <HostA's Gateway>命令,但没有奏效:我无法ping从主机 B访问www.google.com。请原谅我对路由/网络这个主题的无知。
我正在尝试使用 siege 和以下命令在我自己的服务器中进行压力测试:
$ siege -c 500 myweb.com/somefile.php
Run Code Online (Sandbox Code Playgroud)
但我收到此错误:
[error] descriptor table full sock.c:119: Too many open files
Run Code Online (Sandbox Code Playgroud)
我也收到了这个警告:
libgcc_s.so.1 must be installed for pthread_cancel to work
Run Code Online (Sandbox Code Playgroud)
但是我使用的是 Ubuntu 15.04(开发分支)并且我已经安装了 libgcc1 包,所以我不知道它为什么要抱怨那个 .so 共享库。
如何解决打开的文件过多和 libgcc 警告?
我在通过 SSH 连接到我的服务器时遇到了一个突然的问题:
ssh -v --@--
OpenSSH_7.2p2 Ubuntu-4ubuntu1, OpenSSL 1.0.2g-fips 1 Mar 2016
debug1: Reading configuration data /home/paul/.ssh/config
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to -- [--] port 22.
debug1: Connection established.
debug1: identity file /home/paul/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/paul/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/paul/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory …Run Code Online (Sandbox Code Playgroud) 我有一个 Slackware linux 机器,我无法启动任何侦听本地主机上一个特定端口的服务。通过使用 strace 我发现错误发生在bind()调用中,错误是EADDRINUSE (Address already in use):
bind(3, {sa_family=AF_INET, sin_port=htons(874), sin_addr=inet_addr("127.0.0.1")}, 16) = -1 EADDRINUSE (Address already in use)
我尝试开始侦听该端口的任何进程都会发生这种情况,因此它与进程本身无关。上面的 strace 输出来自命令strace -ff nc -l -p 874 -s 127.0.0.1.
所以,这表明有一个进程已经在侦听本地主机端口 874。但是,我似乎找不到它。以下命令均不返回任何内容:
netstat -aplunt | grep :874
netstat -na | grep :874
lsof -i :874
lsof -i tcp | grep 874
fuser 874/tcp
socklist | grep 874
iptables -t filter -S | grep 874
iptables -t nat -S | grep 874
iptables …Run Code Online (Sandbox Code Playgroud) 有没有办法让keepalived定期发送免费的ARP?
我们有以下情况:
因此,我们认为我们可以通过定期 GARP 来避免这种情况。这是一个好方法吗,有没有办法在keepalived中做到这一点?
还有其他建议可以避免此类问题吗?
保活配置:
global_defs {
notification_email {
email@address.com
}
notification_email_from SERVER_1
smtp_server smtp.server.local
smtp_connect_timeout 30
router_id SERVER_1
}
vrrp_instance V1 {
state BACKUP
nopreempt
interface eth0
lvs_sync_daemon_interface eth0
virtual_router_id 150
priority 120
advert_int 1
persistence_timeout 0
smtp_alert
authentication {
auth_type PASS
auth_pass xxx
}
virtual_ipaddress {
10.xxx.xxx.xxx …Run Code Online (Sandbox Code Playgroud) 在 Linux 系统上systemd,networkd我需要在一个 WLAN 接口上运行 WLAN 接入点,同时在正常站(“客户端”)模式下运行更多(热插拔)WLAN 接口。
事实证明,wpa_supplicant.service在我所有的 WLAN 接口上都可以使用,如果所有这些 WLAN 接口都可以在工作站/客户端模式下运行,那就没问题了。但是,虽然wpa_supplicant.service提供 WLAN 接口,但不可能(不再?)hostapd.service在 AP 接入点模式下运行该 WLAN 接口。
所以我只想禁用wpa_supplicant.service特定接口,比如wls35u2. 我的想法是有一个wpa_supplicant@wls35u2.service我可以有选择地禁用但保持wpa_supplicant.service启用状态的单元。但是,这似乎不起作用,或者我在wpa_supplicant@wls35u2.service.
那么,如何仅在特定接口上禁用 WPA 请求方服务而不全局禁用它?
在网上查了一些资料,发现透明防火墙的优点只有两个:
但这看起来有点不完整,而且可能毫无根据。看来供应商(或开源伙伴)应该有一些更好的理由来实现这样的模式,并让客户购买(使用)这个功能。
linux-networking ×10
networking ×4
debian ×2
linux ×2
ssh ×2
systemd ×2
ubuntu ×2
arp ×1
bridge ×1
connection ×1
failover ×1
firewall ×1
gcc ×1
ifconfig ×1
interface ×1
keepalived ×1
routing ×1
security ×1
socket ×1
ssh-tunnel ×1
traffic ×1