有没有一种优雅的方法可以在 BASH 脚本中测试 IP 地址?我可以使用 sed/awk 执行 ifconfig 并缩小 IP 范围,但我认为有一个更简单的解决方案。
我的应用程序基本上在我的内部网中使用 SSH/SCP 脚本,而我不在。所以,我想要这种类型的流程
if IP=192.168.1.1
then do this
else
then do that
Run Code Online (Sandbox Code Playgroud) 我服务器上的输出按以下顺序显示 IPv6:
inet6 addr: 2xxx:xxx:aaac:3e::10/48 Scope:Global
inet6 addr: 2xxx:xxx:aaac:3e::1/48 Scope:Global
inet6 addr: 2xxx:xxx:aaac:3e::2/48 Scope:Global
inet6 addr: 2xxx:xxx:aaac:3e::3/48 Scope:Global
inet6 addr: 2xxx:xxx:aaac:3e::4/48 Scope:Global
inet6 addr: 2xxx:xxx:aaac:3e::5/48 Scope:Global
inet6 addr: 2xxx:xxx:aaac:3e::6/48 Scope:Global
inet6 addr: 2xxx:xxx:aaac:3e::7/48 Scope:Global
inet6 addr: 2xxx:xxx:aaac:3e::8/48 Scope:Global
inet6 addr: 2xxx:xxx:aaac:3e::9/48 Scope:Global
Run Code Online (Sandbox Code Playgroud)
但是在我的 /etc/sysconfig/network-scripts/ifcfg-eth0 中,它们以其他方式排序:
IPV6INIT=yes
IPV6ADDR=2xxx:xxx:aaac:3e::1/48
IPV6ADDR_SECONDARIES=" 2xxx:xxx:aaac:3e::2/48 \
2xxx:xxx:aaac:3e::3/48 \
2xxx:xxx:aaac:3e::4/48 \
2xxx:xxx:aaac:3e::5/48 \
2xxx:xxx:aaac:3e::6/48 \
2xxx:xxx:aaac:3e::7/48 \
2xxx:xxx:aaac:3e::8/48 \
2xxx:xxx:aaac:3e::9/48 \
2xxx:xxx:aaac:3e::10/48"
Run Code Online (Sandbox Code Playgroud)
注意 2xxx:xxx:aaac:3e::10 是第一个,但我希望它是最新的。有什么办法可以让 IPv6s 尊重顺序吗?
ip link set eth0 down和 和有ip link set dev eth0 down什么区别?
命令之间的区别似乎没有记录在任何地方。
问题很直接,给定的命令是做什么的,它是用来做什么的?
ifconfig <interface-name> 0.0.0.0
Run Code Online (Sandbox Code Playgroud)
我知道 0.0.0.0 表示我本地计算机上的所有 IP 地址。
另外,如果我用此命令弄乱了接口,我该如何重置它?
我全新安装了 64 位的 Fedora 17。一切正常,当我插入互联网电缆时,它会自动连接到互联网。
所以当我发出这个命令时我有点困惑:
el@defiant ~ $ ifconfig eth0
Run Code Online (Sandbox Code Playgroud)
我得到错误:
eth0: error fetching interface information: Device not found
Run Code Online (Sandbox Code Playgroud)
找不到设备?这是ifconfig:
ifconfig
Run Code Online (Sandbox Code Playgroud)
我明白了:
em1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.102 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 fe80::ea40:f2ff:fee1:58c prefixlen 64 scopeid 0x20<link>
ether e8:40:f2:e1:05:8c txqueuelen 1000 (Ethernet)
RX packets 44753 bytes 51284267 (48.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 34222 bytes 4294174 (4.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt …Run Code Online (Sandbox Code Playgroud) 我是高级网络管理的新手,我想用 UDP 广播做一些测试,所以我需要在我的环回接口上有一个广播地址。机器离线,即没有网络。
我怎样才能做到这一点,ifconfig而不必在建议的评论中作为一名用户购买交换机。在 Linux 中,我所要做的就是使用 127.255.255.255 并且广播工作正常,无需任何网络或任何交换机。如果我有网络,显然我可以使用 255.255.255.255。
您可以通过以下方法自行检查它是否在 linux 上有效,但在 os/x 中无效:
打开两个终端并在它们上输入:
nc -u -l 55555
打开第三个终端,必要时安装 socat 并输入:(以防您问 netcat 不支持广播)
echo -n "TEST" | socat - udp-datagram:127.255.255.255:55555,broadcast
您应该看到两个终端都收到了消息。
如果您对 127.0.0.1 尝试相同的实验,则只有一个终端会按预期收到消息。
在 OS X 上执行相同的测试不会表现出相同的行为。
如果可能的话,我正在寻找一种用于广播的软件解决方法。
我不能使用多播(它必须是广播),也不能通过网络(机器离线)进行测试。
我有一台 Centos 6 服务器,可以处理大量流量。我发现 RX 溢出一直在增加:
RX packets:11191345002 errors:0 dropped:0 overruns:35592596 frame:0
TX packets:15262461573 errors:0 dropped:0 overruns:0 carrier:0
RX bytes:1871320014951 (1.7 TiB) TX bytes:12673638434114 (11.5 TiB)
Run Code Online (Sandbox Code Playgroud)
根据http://www.tldp.org/LDP/nag2/x-087-2-iface.ifconfig.html
当数据包进入的速度快于内核处理最后一个中断的速度时,通常会发生接收器溢出。
应该调整哪些内核参数来解决这个问题?
我在 Amazon EC2 服务器上运行 Ubuntu。我有一个公共 IP 地址 ( 52.38.20.76)。
我无法将公共 IP 地址绑定到 UDP 端口:
udp listen 52.38.20.76:3478: Cannot assign requested address
Run Code Online (Sandbox Code Playgroud)
因此,我试图更改 ifconfig 以显示公共 IP 地址而不是私有 IP 地址。但是,我尝试过的网络更改没有奏效。
编辑 /etc/network/interfaces.d/eth0.cfg
# The primary network interface
auto eth0
#iface eth0 inet dhcp
iface eth0 inet static
address 52.38.20.76
netmask 255.255.255.0
gateway 172.31.32.1
dns-nameservers 8.8.8.8 8.8.4.4
Run Code Online (Sandbox Code Playgroud)
网关,我基于一个route -n命令的结果:
目标网关 Genmask Flags Metric Ref Use Iface 0.0.0.0 172.31.32.1 0.0.0.0 UG 0 0 0 eth0 172.31.32.0 0.0.0.0 255.255.240.0 U 0 0 …
我有以下问题:
我的服务器获得了来自 [b] 不同 [/b] 子网的两个 IP。现在我正在尝试配置系统以使其正常工作。我创造了
[root@server ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Intel Corporation 80003ES2LAN Gigabit Ethernet Controller (Copper)
HWADDR=00:30:48:DA:B1:0E
DEVICE=eth0
BOOTPROTO=none
BROADCAST=79.174.69.255
IPADDR=79.174.69.241
NETMASK=255.255.254.0
NETWORK=79.174.68.0
ONBOOT=yes
GATEWAY=79.174.68.1
TYPE=Ethernet
[root@server ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0:0
# Intel Corporation 80003ES2LAN Gigabit Ethernet Controller (Copper)
HWADDR=00:30:48:DA:B1:0E
DEVICE=eth0
BOOTPROTO=none
BROADCAST=79.174.69.255
IPADDR=79.174.71.74
NETMASK=255.255.255.0
NETWORK=79.174.71.1
ONBOOT=yes
GATEWAY=79.174.71.1
TYPE=Ethernet
Run Code Online (Sandbox Code Playgroud)
但是在“服务网络重启”和“重启”之后
[root@server ~]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:30:48:DA:B1:0E
inet addr:79.174.71.74 Bcast:79.174.71.255 Mask:255.255.255.0
inet6 addr: fe80::230:48ff:feda:b10e/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:910284 errors:0 dropped:0 overruns:0 frame:0 …Run Code Online (Sandbox Code Playgroud)