linux——单网卡配置双(多)ip

本文介绍如何在Linux系统中为单一网卡配置多个IP地址的方法,包括创建和编辑配置文件、激活网卡及重启网络服务等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  linux上给单张网卡配置多个IP

  今天打开电脑,启用Putty远程登录虚拟机CentOS6时,提示登录失败,就想到自己把电脑换地方了,so,意味着CentOS6的ip也发生了变化,所以远程登录自然失败。一开始想到的是去修改/etc/sysconfig/network-scripts/ifcfg-eth0里面的配置文件,但是我的电脑是经常徘徊于两个地方的,而这两个地方的内网的网段又不同,为了不经常修改这个配置文件而且在两个地方都等远程虚拟机进行操作,就想其他办法了。

  刚好碰到一个linux练习题:给一个网卡配置多个IP。这就能很好的解决我的问题了。这里我配置两个IP,即在原来的基础上再增加一个,配置过程如下:

  (1)仿照/etc/sysconfig/network-scripts/ifcfg-eth0增加一文件,根据网络虚拟接口的名字进行命名。

  例如ifcfg-eth0:0或者ifcfg-eth0:1等等,这里我的操作是:复制ifcfg-eth0ifcfg-eth0:1

[root@Coohx ~]# cd /etc/sysconfig/network-scripts/
[root@Coohx network-scripts]# cp ifcfg-eth0 ifcfg-eth0\:1 #'\'脱意

  (2)然后用vim进行编辑

[root@Coohx network-scripts]# vim ifcfg-eth0\:1


#下边看下ifcfg-eth0:1文件里面的配置信息
DEVICE=eth0:1           #网络虚拟接口eth0:1
ONBOOT=yes              #启动的时候激活
BOOTPROTO=static        #使用静态ip地址
IPADDR=192.168.0.119    #分配ip地址
NETMASK=255.255.255.0   #子网掩码
#GATEWAY=192.168.0.1 #eth0配置已经有网关,同一个网卡只需要一个默认网关       
其他配置文件类似.

  (3)保存退出然后把eth0:1激活。


[root@Coohx network-scripts]# ifconfig eth0:1 up

  (4)重启网络服务

[root@Coohx network-scripts]# service network restart
正在关闭接口 eth0:                                        [确定]
关闭环回接口:                                             [确定]
弹出环回接口:                                             [确定]
弹出界面 eth0: Determining if ip address 192.168.1.118 is already in use for device eth0...
Determining if ip address 192.168.0.119 is already in use for device eth0...

  (5)查看网卡ip信息

[root@Coohx network-scripts]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0C:29:FC:C1:4F
          inet addr:192.168.1.118  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fefc:c14f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2494 errors:0 dropped:0 overruns:0 frame:0
          TX packets:1868 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:244896 (239.1 KiB)  TX bytes:174492 (170.4 KiB)

**eth0:1    Link encap:Ethernet  HWaddr 00:0C:29:FC:C1:4F
          inet addr:192.168.0.119  Bcast:192.168.0.255**  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:659 errors:0 dropped:0 overruns:0 frame:0
          TX packets:659 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:60990 (59.5 KiB)  TX bytes:60990 (59.5 KiB)

  如上:网卡eth0上成功增加了一个虚拟网络接口eth0:1,IP为:192.168.0.119

### 配置Linux服务器上的网卡以指定服务使用的出口IP 为了使特定的服务通过不同的网卡发送流量,在Linux系统中可以采用基于策略的路由(Policy Based Routing)。这涉及到创建额外的路由表以及定义相应的规则。 #### 创建自定义路由表 编辑`/etc/iproute2/rt_tables`文件,向其中添加新的条目用于区分不同用途的路由表: ```bash echo "100 tableA" >> /etc/iproute2/rt_tables echo "101 tableB" >> /etc/iproute2/rt_tables ``` 这里假设tableA对应于第一个网卡而tableB则关联到第二个网卡[^1]。 #### 设置静态路由 对于每张网卡都需要设定独立的默认网关。例如如果要让eth0作为主要连接,则可以在其对应的配置脚本里加入如下命令;而对于次要连接即eth1来说同样操作但是指向另一个网关地址[^3]。 针对上述提到的例子中的具体IP分配情况(192.168.10.83 和 172.16.100.152),可以通过下面的方式来进行设置: ```bash ip route add default via GATEWAY_A dev eth0 table tableA ip route add default via GATEWAY_B dev eth1 table tableB ``` 这里的GATEWAY_A和GATEWAY_B分别是两个网卡所连通网络下的默认网关地址[^4]。 #### 添加源地址选择规则 为了让来自某个特定子网的数据包能够按照预设路径转发出去,还需要增加一些规则来指导内核如何处理这些数据流。比如当目标主机位于本地局域网内部时应优先考虑直连链路而不是经过外部路由器转接等情形下就需要这样做。 对于想要强制某些应用程序或进程使用固定的公网IP对外通信的情况而言,最简单的方法就是依据它们绑定监听端口所属范围内的私有IPv4段落来做决定——也就是说只要知道该应用通常占用哪个区间内的TCP/UDP port number就可以据此制定相应策略了。 以下是为每个网卡建立规则的具体方法: ```bash ip rule add from 192.168.10.83 lookup tableA ip rule add from 172.16.100.152 lookup tableB ``` 这意味着任何源自这两个IP之一的数据都将遵循之前定义好的专属路线图进行传输。 #### 应用程序级别的控制 有时可能需要更细粒度地管理哪些服务会经由哪一个物理接口发出请求。这时便可以用iptables配合conntrack模块实现此目的。例如,若希望SSH客户端总是利用eth0发起远程登录尝试的话,可执行下列指令完成这项工作: ```bash iptables -t mangle -A OUTPUT -p tcp --sport 22 -j MARK --set-mark 1 ip rule add fwmark 1 lookup tableA ``` 这段代码片段的作用在于标记所有从ssh守护进程中产生的外出连接,并将其导向至先前已经准备完毕的那个名为tableA的表格当中去查找匹配项以便最终确定实际走哪条线路送出机房之外[^2]。 以上就是在Linux平台上实施网卡环境下精确调控各业务逻辑单元间通讯行为的一种可行方案概述。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值