使用 ifconfig 我们可以使用以下内容更改网络掩码:
ifconfig eth0 netmask <new netmask>
Run Code Online (Sandbox Code Playgroud)
我们如何使用命令 ip 来做到这一点?
我知道 ifconfig 已被弃用,这主要是为什么我想以 iproute2 方式进行操作。
我的目标是将我们当前的网络从 /24 即时扩展到 /21,而不会干扰我们服务器上运行的服务。作为目前的解决方法,我只是向 /21 添加一条新路由,最终计划的网络重启将使更改正式化。它有效,但我想知道是否有更好的方法。
谢谢,
我正在尝试按照Fedora 的文档将一些旧的 Fedora 13 服务器升级到 Fedora 14 。yum 命令运行得非常快,而且似乎没有错误。然而,当我完成升级到 Fedora 14 后重新启动时,我发现服务器完全离线,我无法通过 SSH 连接到它。手动登录发现eth0接口没有自动启动。
我的 ifcfg-eth0 看起来像:
DEVICE=eth0
BOOTPROTO=static
DEFROUTE=yes
DHCPCLASS=
DNS1=10.157.10.12
GATEWAY=10.157.10.1
HWADDR=00:0D:12:34:56:78
IPADDR=10.157.10.18
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NETMASK=255.255.255.0
ONBOOT=yes
OPTIONS=layer2=1
PEERDNS=yes
PEERROUTES=yes
TYPE=Ethernet
UUID=5fb16cd0-0bb1-8ffb-45f1-d6edd65f3e02
Run Code Online (Sandbox Code Playgroud)
运行sudo ifup eth0正确打开了界面,服务器似乎没有进一步的升级问题。但是,既然我已经指定了ONBOOT=yes,为什么界面没有被自动调出?
编辑:
[user@host ~]# chkconfig --list | grep -E "network|Network"
NetworkManager 0:off 1:off 2:off 3:off 4:off 5:off 6:off
network 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Run Code Online (Sandbox Code Playgroud) 我目前正在尝试在我的网络上设置一个 Hadoop 分布式计算集群。目前。我的集群节点在与我的主服务器通信时遇到问题。
现在我正在两台计算机上工作,CLIENT 和 SERVER。
在服务器上:
$ nmap SERVER -p 9000
Starting Nmap 5.21 ( http://nmap.org ) at 2012-05-29 13:16 PDT
Nmap scan report for ncoiasi1 (127.0.0.1)
Host is up (0.000032s latency).
Hostname ncoiasi1 resolves to 2 IPs. Only scanned 127.0.0.1
rDNS record for 127.0.0.1: localhost
PORT STATE SERVICE
9000/tcp open cslistener
Run Code Online (Sandbox Code Playgroud)
在客户端:
$ nmap SERVER -p 9000
Starting Nmap 5.21 ( http://nmap.org ) at 2012-05-29 13:16 PDT
Nmap scan report for ncoiasi1 (10.23.95.197)
Host is up (0.00020s latency). …Run Code Online (Sandbox Code Playgroud) 我在工作场所的服务器遇到了一个奇怪的问题(如果这很重要,它在 NAT 后面)。问题是有时,它变得无法访问,然后又恢复正常,通常在几秒钟内,有时会持续长达 1 分钟。它不会重新启动,也不会崩溃。它只是变得无法访问。在此期间,我无法通过 ssh 进入它,也无法访问机器上运行的任何应用程序(它正在运行几个 Rails 应用程序,因此它们也无法访问)。我检查了 dmesg 并看到了这些行 -
[ 4.958074] ADDRCONF(NETDEV_UP): eth0: link is not ready
[ 5.040476] ADDRCONF(NETDEV_UP): eth1: link is not ready
[ 5.175624] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
[ 5.177207] ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
Run Code Online (Sandbox Code Playgroud)
几行之后,我看到关于网络接口的类似内容 -
[1195777.544167] igb: eth0 NIC Link is Down
[1195780.962943] igb: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX/TX
Run Code Online (Sandbox Code Playgroud)
看起来确实是网络问题。/var/log/messages 没有显示任何有趣的东西。我不知道如何调试这个。关于它可能是什么的任何线索?我应该在这里检查什么?谢谢!
我为 samba 客户端尝试了以下 iptables 规则,它们奏效了。请注意,INPUT、OUTPUT 和 FORWARD 的策略都设置为 DROP
iptables -A OUTPUT -m state --state NEW,ESTABLISHED -p udp --dport 137 -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED -p udp --dport 138 -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED -p tcp --dport 139 -j ACCEPT
iptables -A OUTPUT -m state --state NEW,ESTABLISHED -p tcp --dport 445 -j ACCEPT
Run Code Online (Sandbox Code Playgroud)
为什么我们只需要 samba 客户端的 OUTPUT 规则?为什么我们不需要 INPUT 规则来为传入的数据包打开这些端口?
另一个问题:链名在内部是否带有任何方向的意义,或者它们只是便于理解的助记符?
iptables:
-------------
# Generated by iptables-save v1.4.7 on Wed Aug 28 …Run Code Online (Sandbox Code Playgroud) 我有一个专用服务器,我在公共 IP 地址上运行多个面向 Web 的虚拟机;我为每个 IP 向我的托管服务提供商付费。
我还想运行具有私有地址的虚拟机。我可以使用哪些地址:它取决于我的托管服务提供商还是我可以使用来自私人地址空间的任何 IP 地址?
我在我的桌面上运行 CentOS 6.5。我已经设置了Network Proxy使用下提供的网络代理应用程序Preferences。我还设置了以下例外: localhost,127.0.0.0/8,172.16.0.0/12,192.168.0.0./16
但是每当我使用 wget(我正在使用 wget 测试代理设置)时,wget 都会尝试连接到私有地址的代理,但wget localhost工作正常并且不使用代理。
我还删除了所有代理设置并在 shell 中设置了代理:
export http_proxy="<proxy_url>:<port>"
export https_proxy="<proxy_url>:<port>"
export no_proxy="localhost,127.0.0.0/8,172.16.0.0/12,192.168.0.0./16"
Run Code Online (Sandbox Code Playgroud)
它工作时,我用命令wget <external_url>或者wget localhost但是当我使用该命令将失败wget <private address from the $no_proxy variable>。
我还尝试在 Ubuntu 14.04 中设置变量并面临同样的问题。
编辑:我发现 shell 忽略了 CIDR 表示法。如果我需要在没有代理的情况下浏览 127.0.0.1 那么我需要在no_proxy变量中输入 127.0.0.1而不是 127.0.0.0/8
我已经阅读了内核文档的bonding.txt 文件,负载平衡很清楚,但是 balance-alb 和 balance-tlb 真的容错吗?
我看到诸如
Feb 13 21:45:48 srv named[2355]: address not available resolving 'secure.gravatar.com/A/IN': 2a04:fa87:ffff::c6b5:7405#53
Feb 13 21:42:29 srv named[2355]: address not available resolving 'la1.akamaiedge.net/AAAA/IN': 2001:500:a8::e#53
Run Code Online (Sandbox Code Playgroud)
在/var/log/syslog尽管运行bind在只有IPv4模式
srv # cat /etc/default/bind9
# run resolvconf?
RESOLVCONF=no
# startup options for the server
OPTIONS="-u bind -4"
Run Code Online (Sandbox Code Playgroud)
为什么会这样?
例如
SW1
/ | \
server1 SW2 SW3
| | \
server2 server3 server4
Run Code Online (Sandbox Code Playgroud)
如果 server3 向 server4 发送数据,SW3知道两个 MAC,所以它只是转发数据。
但是如果 server1 向 server4 发送数据呢?如何SW1知道使用哪个端口转发数据?
linux-networking ×10
linux ×6
networking ×5
bash ×1
bind ×1
bonding ×1
debian ×1
fedora ×1
http-proxy ×1
iproute2 ×1
iptables ×1
nameserver ×1
nat ×1
proxy ×1
switch ×1