当前位置:首页 » 币种行情 » eth0path

eth0path

发布时间: 2023-01-31 00:14:05

『壹』 Fedora 7 安装过程中没有配置eth0这一步,而且安装成功后也找不到eth0,导致不能上网,有没有人知道原因

1、ifconfig eth0 up ,激活网卡,如果告诉你“No such device”,那么表示你的网卡驱动没有安装。
2、network 默认是关闭的,启动该服务先。service network start
3、为了方便,开机启动network服务,执行命令 chkconfig network on

麦麦的不老阁

『贰』 error:创建到服务器 (9903) 的连接失败

游戏服务器注意事项
一、硬件的安装
1、保证服务器风扇正常转动。
2、保证服务器各个提示灯是否正常。
3、开机察看服务器有无报警情况。
4、开机察看服务器能否正常启动(不插鼠标键盘的情况下)

二、系统的安装
安装RHEL 4.1
选择自动分区。
分别给2块网卡配置ip,方便以后配置,其中eth0配内网ip,eth1配外网ip。
不启用防火墙。
增加中文语言包。
选择软件包时,只选择开发包.

三、系统的简单设置
1、防火墙的简单设置:
vi /etc/rc.d/forward
内容:(例子)
#!/bin/bash
echo 1 >/proc/sys/net/ipv4/ip_forward
if [ -e /proc/sys/net/ipv4/tcp_ecn ]
then
echo 0 > /proc/sys/net/ipv4/tcp_ecn
fi
/sbin/iptables -F
/sbin/iptables -F -t nat
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#/sbin/iptables -A INPUT -i eth0 -p tcp -j REJECT --reject-with tcp-reset
/sbin/iptables -A INPUT -i eth0 -p udp -j REJECT --reject-with icmp-port-unreachable

#sshd
/sbin/iptables -A INPUT -s 218.80.198.234 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -s 218.80.198.250 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -s 210.22.188.21 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

#ftp server
#/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT

#game server
/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 6020 -j ACCEPT

#db server
/sbin/iptables -t nat -A PREROUTING -s 218.80.198.234 -d 203.110.165.30 -p tcp --dport 3306 -j DNAT --to 192.168.102.158:3306
/sbin/iptables -t nat -A PREROUTING -s 218.80.198.234 -d 203.110.165.30 -p tcp --dport 3307 -j DNAT --to 192.168.102.159:3306

/sbin/iptables -P INPUT DROP

/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192.168.102.0/24 -j MASQUERADE
保存后退出。
chmod 744 /etc/rc.d/forward
然后运行防火墙脚本,以后根据需求修改脚本。

再vi /etc/rc.d/only_forward
#!/bin/bash
echo 1 >/proc/sys/net/ipv4/ip_forward
if [ -e /proc/sys/net/ipv4/tcp_ecn ]
then
echo 0 > /proc/sys/net/ipv4/tcp_ecn
fi
/sbin/iptables -F
/sbin/iptables -F -t nat
/sbin/depmod -a
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -i eth0 -j ACCEPT
/sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
#/sbin/iptables -A INPUT -i eth0 -p tcp -j REJECT --reject-with tcp-reset
/sbin/iptables -A INPUT -i eth0 -p udp -j REJECT --reject-with icmp-port-unreachable

#sshd
/sbin/iptables -A INPUT -s 218.80.198.234 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -s 218.80.198.250 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
/sbin/iptables -A INPUT -s 210.22.188.21 -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT

#ftp server
#/sbin/iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 21 -j ACCEPT

#game server
/sbin/iptables -A INPUT -s 218.80.198.234 -p tcp -m state --state NEW -m tcp --dport 6020 -j ACCEPT

#db server
/sbin/iptables -t nat -A PREROUTING -s 218.80.198.234 -d 203.110.165.30 -p tcp --dport 3306 -j DNAT --to 192.168.102.158
/sbin/iptables -t nat -A PREROUTING -s 218.80.198.234 -d 203.110.165.30 -p tcp --dport 3307 -j DNAT --to 192.168.102.159:3306

/sbin/iptables -P INPUT DROP

/sbin/iptables -t nat -A POSTROUTING -o eth1 -s 192.168.102.0/24 -j MASQUERADE

此防火墙只允许公司的电脑可以登录游戏。

2、设置系统自动启动防火墙
vi /etc/rc.d/rc.local
增加一行
/etc/rc.d/forward
保存后退出
3、设置文件打开数
1) 修改/etc/security/limits.conf 增加2行:

* soft nofile 4096
* hard nofile 65535

2) 修改/etc/pam.d/login 增加1行

session required pam_limits.so
可用:
echo “* soft nofile 4096” >>/etc/security/limits.conf
echo “* hard nofile 65535” >>/etc/security/limits.conf
echo “session required pam_limits.so” >>/etc/pam.d/login
4、修改默认语言
vi /etc/sysconfig/i18n 修改

LANG="zh_CN.GB2312"

新建游戏运行用户ztgame,设置密码
useradd ztgame
passwd ztgame

用ztgame用户登录服务器,修改vi /home/ztgame/.bash_profile增加一行
ulimit –c unlimited
保存后退出。

四、游戏环境的搭建(按照4台网关服务器,5台场景服务器,1台数据库服务器的构架)
1、服务器IP设置
4台网关服务器配置外网ip和内网ip,5台场景服务器和数据库服务器只配置内网ip,并且服务器默认网关为第一台网关服务器的内网ip。
服务器以服务器应用-序号-机房序号命名(例GWServer01-CHJ01)。
修改/etc/hosts。
例子:
127.0.0.1 GWServer01-CHJ01 localhost.localdomain localhost
192.168.100.101 GWServer02-CHJ01
………
192.168.100.104 ScenServer01-CHJ01
………
192.168.100.109 DBServer-CHJ01

2、公钥的生成
在ztgame的用户下登陆第一台网关服务器,输入ssh-keygen -t dsa
接受 ~/.ssh/id_dsa 的默认位置。输入一个与你的帐号口令不同的口令句,再输入一次来确认。公钥被写入 ~/.ssh/id_dsa.pub。密钥被写入 ~/.ssh/id_dsa。
使用以下命令改变你的 .ssh 目录的许可权限:
chmod 755 ~/.ssh
把 ~/.ssh/id_dsa.pub用scp命令传到其它剩余9台服务器
scp~/.ssh/id_dsa.pub [email protected]:~/.ssh/authorized_keys
在其它9台服务器下使用以下命令改变你的 authorized_keys 文件的许可权限:
chmod 755 ~/.ssh
chmod 644 ~/.ssh/authorized_keys

3、数据库服务器的安装
#首先确定你是root用户
#确定你有以下包
perl-DBD-MySQL-2.9004-3.1
perl-DBI-1.40-5
mysql-4.1.7-4.RHEL4.1
获得mysql-4.1.*.tar包,用tar –zxvf mysql-4.1.*tar解开压缩包,然后进入mysql-4.1.*目录
#根据体统类型选择编译方式
#i386体系结构的
CFLAGS="-O3 -mcpu=pentiumpro" CXX=gcc CXXFLAGS="-O3 -mcpu=pentiumpro -felide-constructors -fno-exceptions -fno-rtti" ./configure --with-raid --enable-thread-safe-client --enable-assembler --with-server-suffix =" for >>>MySQL Database of Zebra by Yhc<<<" --without-debug --with-extra-charsets=none --without-isam --disable-shared --with-mysqld-ldflags=-all-static --prefix=/usr/local/mysql --without-bench
#64位系统,x86_64
CFLAGS="-O3 -m64" CXX=gcc CXXFLAGS="-O3 -m64 -felide-constructors -fno-exceptions -fno-rtti" ./configure --with-raid --enable-thread-safe-client --enable-assembler --with-server-suffix =" for >>>MySQL Database of Zebra by Yhc<<<" --without-debug --with-extra-charsets=none --without-isam --disable-shared --with-mysqld-ldflags=-all-static --prefix=/usr/local/mysql --without-bench

#然后根据CPU数量进行编译
make -j 2 && make install

#添加用户
groupadd mysql && useradd -g mysql mysql

#创建目录
mkdir /usr/local/mysql/data && mkdir /usr/local/mysql/run && mkdir /usr/local/mysql/log && mkdir /usr/local/mysql/var

#更改mysql目录所有者
chgrp mysql -R /usr/local/mysql && chown mysql -R /usr/local/mysql

#增加打开文件数量
ulimit -n 4096

#添加PATH
echo "PATH=\"/usr/local/mysql/bin:\$PATH\"" >> /etc/profile && export PATH="/usr/local/mysql/bin:$PATH"

#strip可执行文件
strip /usr/local/mysql/libexec/mysqld

#添加LIB PATH
echo "/usr/local/mysql/lib" >> /etc/ld.so.conf && ldconfig

#将my.cnf文件cp到/etc目录下
cp support-files/my-huge.cnf /etc/my.cnf

#修改my.cnf
datadir=/db/mysql

#创建数据库存放路径
mkdir /db
chown mysql.mysql /db -R

#初始化Mysql表
su - mysql -c "mysql_install_db"

#启动服务器
su - mysql -c "mysqld_safe --skip-name-resolve --open-files-limit=4096&"

#创建数据库和用户
GRANT ALL PRIVILEGES ON *.* TO [email protected].% IDENTIFIED BY WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO ztgame@localhost IDENTIFIED BY WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO [email protected] IDENTIFIED BY WITH GRANT OPTION;

4、数据库配置
用mysql进入,然后用create database dbname创建数据库。分别创建SuperServer、RecordServer、Bill数据库,然后用安装包目录下的*.sql的文件建立相应的表。(SessionServer.sql也导入到RecordServer库中)。
在SuperServer数据库SERVERLIST表内添加服务器配置信息。
例子:
INSERT INTO `SERVERLIST` VALUES (1,1,SuperServer,192.168.104.109,10000,192.168.104.109,10000);
INSERT INTO `SERVERLIST` VALUES(20,20,SessionServer,192.168.104.109,6000,192.168.104.109,6000);
INSERT INTO `SERVERLIST` VALUES(21,21,SceneServer,192.168.104.104,6010,192.168.104.104,6010);
INSERT INTO `SERVERLIST` VALUES(22,21,SceneServer,192.168.104.105,6011,192.168.104.105,6011);
INSERT INTO `SERVERLIST` VALUES(23,21,SceneServer,192.168.104.106,6012,192.168.104.106,6012);
INSERT INTO `SERVERLIST` VALUES(24,21,SceneServer,192.168.104.107,6013,192.168.104.107,6013);
INSERT INTO `SERVERLIST` VALUES(25,21,SceneServer,192.168.104.108,6014,192.168.104.108,6014);
INSERT INTO `SERVERLIST` VALUES(2200,22,GatewayServer,192.168.104.100,6020,210.51.23.132,6020);
INSERT INTO `SERVERLIST` VALUES(2201,22,GatewayServer,192.168.104.101,6020,210.51.23.133,6020);
INSERT INTO `SERVERLIST` VALUES(2202,22,GatewayServer,192.168.104.102,6020,210.51.23.134,6020);
INSERT INTO `SERVERLIST` VALUES(2203,22,GatewayServer,192.168.104.103,6020,210.51.23.135,6020);
INSERT INTO `SERVERLIST` VALUES(11,11,RecordServer,192.168.104.109,7010,192.168.104.109,7010);
INSERT INTO `SERVERLIST` VALUES(12,12,BillServer,192.168.104.109,7020,192.168.104.109,7020);
在RecordServer数据库上初始化某些表格,目前有ANSWER,TECH,COUNTRY,NPCDARE,ACCPRIV。
数据库服务器上跑SuperServer、SessionServer、RecordServer、BillServer四个服务,4个网关服务器分别跑4个网关服务,5个场景服务器分别跑5个场景服务。场景服务器对应的ID就是国家配置的ID号,这个ID号决定场景服务器上面跑几个国家。

五、服务端的配置和安装
1、获得安装包:
release-version.tar.bz2
map-version.tar.bz2
在/home/ztgame下建立以时间为名字的目录(game20050928),压缩包放入此目录,然后用tar –jxvf release-version.tar.bz2 和tar –jxvf map-version.tar.bz2解开压缩包

进入release目录,cp –rf ../map .
按照config.xml.example格式创建文件config.xml
配置文件主要定义了服务器的各种参数:
[global]这段主要定义了通用参数,如服务器本地网络设备名称,扩展网络设备名称,日志级别,SuperServer的服务器地址,端口等参数。

其他各个段定义了具体的服务参数,主要是指定该服务对应的数据库,数据库的连接地址,端口,用户名,密码等数据库连接字符串。每个服务可以定义日志文件的存放位置,如果没有指定,缺省放置在/tmp/目录下面。
如SuperServer服务
<SuperServer>
<!--MySQL database connection[mysql://user:passwd@host:port/dbName]-->
<mysql>mysql://test:[email protected]:3306/SuperServer</mysql>
<logfilename>/home/test/tmp/superserver.log</logfilename>
</SuperServer>
上面配置指明SuperServer服务,采用连接串用户名test,密码123456,访问192.168.2.14服务器上3306端口下SuperServer数据库,日志文件存放在/home/test目录下。其他服务配置类似。
例子:
<?xml version="1.0" encoding="GB2312"?>
<!--所有各种服务器参数-->
<Zebra>
<global>
<!-- Specify the log level[debug,info,warning,error,fatal,always]. -->
<log>debug</log>
<!--MySQL database connection[mysql://user:passwd@host:port/dbName]-->
<!-- Use the specified local network device. -->
<ifname>eth0</ifname>
<!-- Connected to the specified supserserver, property port default value is 10000. -->
<superserver port="10000">192.168.104.109</superserver>
</global>
<SuperServer>
<!-- 统一用户平台登陆服务器列表文件 -->
<loginServerListFile>loginServerList.xml</loginServerListFile>
<!-- 角色名称唯一性验证服务器的地址 -->
<RoleregServer port="9901">218.80.198.252</RoleregServer>
<!-- 服务器信息采集的服务器地址 -->
<InfoServer port="9903">218.80.198.252</InfoServer>
<!--MySQL database connection[mysql://user:passwd@host:port/dbName]-->
<mysql>mysql://ztgame:[email protected]:3306/SuperServer</mysql>
<!-- 如果要编码mysql连接字符串请使用工具,配置如下面的例子
<mysql encode="yes">lmOf.
</mysql>-->
<logfilename>/log/superserver.log</logfilename>
</SuperServer>
<RecordServer>
<!--MySQL database connection[mysql://user:passwd@host:port/dbName]-->
<mysql>mysql://ztgame:[email protected]:3306/RecordServer</mysql>
<logfilename>/log/recordserver.log</logfilename>
</RecordServer>
<BillServer>
<!--MySQL database connection[mysql://user:passwd@host:port/dbName]-->
<mysql>mysql://ztgame:[email protected]:3306/Bill</mysql>
<logfilename>/log/billserver.log</logfilename>
</BillServer>
<BillClient>
<!-- 交易记录log文件路径 -->
<tradelogfilename>/log/clienttrade.log</tradelogfilename>
</BillClient>
<SessionServer>
<!--MySQL database connection[mysql://user:passwd@host:port/dbName]-->
<mysql>mysql://ztgame:[email protected]:3306/RecordServer</mysql>
<logfilename>/log/sessionserver.log</logfilename>
<dare_active_time>3600</dare_active_time>
<offlineMsgPath>/log/offlineMessages</offlineMsgPath>
</SessionServer>
<ScenesServer>
<sceneinfofile>scenesinfo.xml</sceneinfofile>
<npctradefile>npctrade.xml</npctradefile>
<messageSystemFile>messageSystem.xml</messageSystemFile>
<charinitinfoFile>initcharinfo.xml</charinitinfoFile>
<magicrangeFile>magicrangefile.xml</magicrangeFile>
<questdir>quest/</questdir>
<mapdir>map/</mapdir>
<tbldir>map/</tbldir>
<gm_logfile>/log/gm_log.log</gm_logfile>
<!--回写档案平率(单位是秒) -->
<writebacktimer>300</writebacktimer>
<ossdir>/log/</ossdir>
<logfilename>/log/scenesserver.log</logfilename>
</ScenesServer>
<GatewayServer>
<!-- 国家排序方式 0:不排序 , 1:在线人数排序 , 2:注册人数排序 -->
<countryorder>2</countryorder>
<logfilename>/log/gatewayserver.log</logfilename>
<sceneinfofile>scenesinfo.xml</sceneinfofile>
<rolereg_verify>1</rolereg_verify>
<forbidWordsFile>forbidWords</forbidWordsFile>
</GatewayServer>
</Zebra>
注意存放日至的目录是否建立,以及建立session服务所要求的日志存放子目录offlineMessages。

修改loginServerList.xml,填入平台中心的FLServer服务器ip以及端口。
例子:
<?xml version="1.0" encoding="GB2312"?>
<LoginServerList>
<server ip="218.80.198.252" port="7001"/>
<server ip="210.22.188.20" port="7001"/>
</LoginServerList>

然后将修改好的版本传至其它9台服务器。并启动服务

六、服务器的启动,停止和更新
1、将运行脚本传至各个服务器。

2、开启游戏服务

通过ssh使用ztgame用户远程连接至第一台网关服务器,再通过网关服务器连接其他9台服务器,

10个窗口内分别进入最新的服务端存放目录/home/ztgame/game200508**/release/

数据库服务器 启动服务./SuperServer -d 和 ./SessionServer -d 和 ./RecordServer -d 和 ./BillServer -d
场景服务器 启动服务./ScenesServer -d
网关服务器 启动服务./GatewayServer -d

以上操作可以通过/home/ztgame/tools/allstart game200508**来启动(由于程序是后台运行,所以如发现程序运行时间过长,可以CTRL+c中断,并不影响程序的正常运行。)

3、停止游戏服务

通过ssh使用ztgame用户远程连接至第一台网关服务器,运行/home/ztgame/tools/allstop,中止所有服务

,此脚本是并不是强行杀进程,所以如果发现进程无法kill的情况,用/home/ztgame/tools/allstop_9来强行杀死进程。

4、查看游戏服务

通过ssh使用ztgame用户远程连接至第一台网关服务器,运行/home/ztgame/tools/allview,查看所有服务运行状态。

5、更新游戏服务

通过ssh使用ztgame用户远程连接至第一台网关服务器,再通过服务器连接其他9台服务器,

分别在/home/ztgame目录下面建立最新的服务端存放目录game200508**.

然后将服务器端安装包通过scp传到第一台网关服务器,在game200508**下解压。
tar jxvf zebra-release-*****
tar jxvf zebra-release-*****
cp map release/ -rf
然后从上一个版本里拷贝出一些配置文件覆盖源文件
cp /home/ztgame/game_old/release/config.xml /home/ztgame/game_new/release/
cp /home/ztgame/game_old/release/loginServerList.xml /home/ztgame/game_new/release/
cp /home/ztgame/game_old/release/messageSystem.xml /home/ztgame/game_new/release/

以上工作准备好后就可以将网关服务器上的版本传到其他服务器
scp -r /home/ztgame/game_new/* [email protected]:/home/ztgame/game_new

以上操作可以通过shell脚本来实现
/home/ztgame/tools/installPackage game_new game-old

七、服务器数据的备份
1、数据备份
为了防止意外情况的发生造成数据的丢失,关键数据或整个系统或对有选择的系统部分,在本地和异地进行定时备份,以保证系统全部或部分在灾害出现时也能持续运行。
2、具体方案
1)、数据库每日备份
每天4:00,将RecordServer数据库拷贝至/root/back后进行压缩,然后上传至192.168.1.9服务器上,/root/back留有压缩版本。
运行脚本/root/scripts/back.sh
例子:
#!/bin/bash
rm /root/back/RecordServer/* -rf
/usr/local/mysql/bin/mysqlhot RecordServer /root/back/RecordServer -u ztgame -p yS29wahvCH
sleep 5
cd /root/back
tar zcf `hostname`-RecordServer`date +%Y%m%d`.tar.gz RecordServer
sleep 5
echo "tar ok!"
/usr/local/bin/ncftpput -u gamebak -p gamebak@ztgame 218.80.198.234 / /root/back/`hostname`-RecordServer`date +%Y%m%d`.tar.gz
sleep 20
echo "upload RecordServer ok!"
2)、数据库即时备份
每隔1小时,将RecordServer数据库拷贝至/root/back/hour目录进行备份,然后将压缩文件传给特定服务器。
例子:
#!/bin/bash
hottime=`date +%Y%m%d%H%M`
mkdir /root/back/hour/RecordServer"$hottime"
/usr/local/mysql/bin/mysqlhot RecordServer /root/back/hour/RecordServer"$hottime" -u ztgame -p yS29wahvCH
sleep 5
cd /root/back/hour
tar zcf `hostname`-RecordServer"$hottime".tar.gz RecordServer"$hottime"
sleep 5
echo "tar ok!"
/usr/local/bin/ncftpput -u backupdb -p backupdb 192.168.102.119 / /root/back/hour/`hostname`-RecordServer"$hottime".tar.gz
sleep 20
echo "upload RecordServer ok!"
rm `hostname`-RecordServer"$hottime".tar.gz -f
3)、日志备份
每天02:00,将/log/下前一天的日志,进行压缩,然后上传至192.168.1.9服务器。
运行脚本/root/scripts//upload_daily
例子:
#!/bin/bash
cd /log/
mkdir log`date --date 1 days ago +%Y%m%d`
mv *.log.`date --date 1 days ago +%y%m%d`-* log`date --date 1 days ago +%Y%m%d`
sleep 10
tar zcvf `hostname`-log`date --date 1 days ago +%Y%m%d`.tar.gz log`date --date 1 days ago +%Y%m%d`
/usr/local/bin/ncftpput -u log -p log@ztgame 218.80.198.234 / /log/`hostname`-log`date --date 1 days ago +%Y%m%d`.tar.gz
rm `hostname`-log`date --date 1 days ago +%Y%m%d`.tar.gz

注:计划任务通过/etc/crontab –e来进行设置

4)、即时日志备份
直接运行/home/ztgame/tools/upload 将最新日志上传至192.168.1.9服务器,方便研发部门查看。
运行脚本/home/ztgame/tools/upload,(

『叁』 redhat 万兆和千兆的网卡命名问题

新弄了一批机器,为了准备切换到万兆环境,给机器配了双千兆和双万兆混合的4接口网卡,然后就出了一点问题

centos 7 引入了网络一致化命名规则,具体可以看红帽的联网指南

主要部分摘抄如下

------------引用专用分割线----------------------------

8.1. 命名方案层级结构

默认情况下,systemd 会使用以下策略,采用支持的命名方案为接口命名:

方案 1: 如果固件或 BIOS 信息适用且可用,则使用整合了为板载设备提供索引号的固件或 BIOS 的名称(例如:eno1),否则请使用方案 2。

方案 2: 如果固件或 BIOS 信息适用且可用,则使用整合了为 PCI 快速热插拔插槽提供索引号的固件或 BIOS 名称(例如 ens1),否则请使用方案 3。

方案 3: 如果硬件连接器物理位置信息可用,则使用整合了该信息的名称(例如:enp2s0),否则请使用方案 5。

方案 4:  默认不使用整合接口 MAC 地址的名称(例如:enx78e7d1ea46da),但用户可选择使用此方案。

方案 5: 传统的不可预测的内核命名方案,在其他方法均失败后使用(例如: eth0)。

这个策略(如上所述)是默认策略。如果该系统已启用  biosdevname ,则会使用该方案。注:启用  biosdevname  需要添加 biosdevname=1 作为命令行参数(Dell 系统除外),此时只要安装  biosdevname ,就会默认使用该方案。如果用户已添加  udev  规则,该规则会更高内核设备名称,则会优先使用这些规则。

设备命名过程如下:

/usr/lib/udev/rules.d/60-net.rules 文件中的规则会让  udev  帮助工具  /lib/udev/rename_device  查看所有 /etc/sysconfig/network-scripts/ifcfg- suffix  文件。如果发现包含 HWADDR 条目的 ifcfg 文件与某个接口的 MAC 地址匹配,它会将该接口重命名为 ifcfg 文件中由 DEVICE 指令给出的名称。

/usr/lib/udev/rules.d/71-biosdevname.rules 中的规则让  biosdevname  根据其命名策略重命名该接口,即在上一步中没有重命名该接口、已安装  biosdevname 、且在 boot 命令行中将 biosdevname=0 作为内核命令给出。

/lib/udev/rules.d/75-net-description.rules 中的规则让  udev  通过检查网络接口设备,填写内部  udev  设备属性值 ID_NET_NAME_ONBOARD、ID_NET_NAME_SLOT、ID_NET_NAME_PATH。注:有些设备属性可能处于未定义状态。

/usr/lib/udev/rules.d/80-net-name-slot.rules 中的规则让  udev  重命名该接口,优先顺序如下:ID_NET_NAME_ONBOARD、ID_NET_NAME_SLOT、ID_NET_NAME_PATH。并提供如下信息:没有在步骤 1 或 2 中重命名该接口,同时未给出内核参数 net.ifnames=0。如果一个参数未设定,则会按列表的顺序设定下一个。如果没有设定任何参数,则不会重命名该接口。

-----------以上是红帽的联网指南-------

其实简述上面的信息就是首先看内核参数是否启用了biosdevname=1 (默认是启用),如果bios提供了设备的名称就使用bios提供的名称

如果没有,就根据网卡配置中 device=eth,em,xyz 的名字来命名这个网卡,但是如果这样命名的话,必须在配置里写死网卡的mac地址

作为网卡的识别标志,对单网卡当然没什么问题,但是如果在集群环境里,HA,以及bonding环境里,为了快速切换网络流量,往往要屏蔽mac,

使用虚拟mac,或者多块网卡使用一个mac地址,这个时候需要在配置文件里屏蔽mac地址,因此就需要区改udev的配置文件来解决

我所遇到的问题是,使用了biosdevname=0和 net.ifnames=0 参数后,(因为以前有大量的centos6的机器,为了移植方便,不使用一致性命名规则,网卡名依然是eth0,eth1.。。。)安装服务器时一切正常,但启动系统后,发现系统将插在第一个端口的网卡认为是eth2,和预期不符,本能的认为udev可以解决问题,于是添加了udev的规则

```

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:6e:96:ac:a1:xa", ATTR{type}=="1", KERNEL=="*", NAME="eth0"

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:6e:96:ac:a1:xb", ATTR{type}=="1", KERNEL=="*", NAME="eth1"

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:6e:96:ac:a1:xc", ATTR{type}=="1", KERNEL=="*", NAME="eth2"

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:6e:96:ac:a1:xd", ATTR{type}=="1", KERNEL=="*", NAME="eth3"

```

发现不起作用,,难道写错了?换个规则,用pci设备号去绑定

SUBSYSTEM=="net", ACTION=="add", KERNEL=="eth*", SUBSYSTEM=="pci", KERNELS===="0000:01:00.0", NAME="eth0"

依然没用

用下面的命令debug一下

udevadm test /sys/class/net/eth0

结果缩略如下

rules contain 49152 bytes tokens (4096 * 12 bytes), 13451 bytes strings

2076 strings (25677 bytes), 1399 de-plicated (12904 bytes), 678 trie nodes used

NAME 'eth2' /etc/udev/rules.d/60-net.rules:6

IMPORT builtin 'net_id' /usr/lib/udev/rules.d/75-net-description.rules:6

IMPORT builtin 'hwdb' /usr/lib/udev/rules.d/75-net-description.rules:12

IMPORT builtin 'path_id' /usr/lib/udev/rules.d/80-net-setup-link.rules:5

IMPORT builtin 'net_setup_link' /usr/lib/udev/rules.d/80-net-setup-link.rules:9

No matching link configuration found.

RUN '/usr/lib/systemd/systemd-sysctl --prefix=/net/ipv4/conf/$name --prefix=/net/ipv4/neigh/$name --prefix=/net/ipv6/conf/$name --prefix=/net/ipv6/neigh/$name' /usr/lib/udev/rules.d/99-systemd.rules:55

Error changing net interface name 'eth0' to 'eth2': File exists

could not rename interface '2' from 'eth0' to 'eth2': File exists

created db file '/run/udev/data/n2' for '/devices/pci0000:00/0000:00:1c.4/0000:06:00.0/net/eth0'

ACTION=add

DEVPATH=/devices/pci0000:00/0000:00:1c.4/0000:06:00.0/net/eth0

ID_BUS=pci

ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P X540/I350 rNDC)

粗体看到原来是设备已经存在,无法重命名,于是想到的重新加载驱动

modprobe -rv igb

modprobe -rv ixgbe

然后按顺序加载驱动

modprobe ixgbe

modprobe  igb

终于可以看到效果了,不过重启就完蛋了

于是想是否可以调整驱动加载顺序?

找了半天文档,发现可以通过重新打包内核启动文件和编译内核两条路实现,不过这显然又增加了很多麻烦,总不能升级一次内核,就重新打一次包吧

看看其他方法。最好发现简单的方法就是修改启动内核的参数 将 biosdevname=0和net.ifnames=0 改为 biosdevname=0和net.ifnames=1 ,这样系统启动时,会按照上述一致性命名规则,重新命名网卡,可以预期的是,已dell板载网卡为例,网卡会依次命名为eno1,eno4,等等,然后再加载udev规则,按照udev规则,再次重新命名为我们期望的eth0,eth1,等等

当然配置文件可以用ansible搞定,我这里的模版内容就是

ifcfg-eth0.j2

------

NAME="eth0"

DEVICE="eth0"

ONBOOT=yes

HWADDR="{{ hostvars[inventory_hostname].ansible_eth1.macaddress }}"

NETBOOT=yes

IPV6INIT=no

BOOTPROTO=static

TYPE=Ethernet

----------

这样udev 规则就生效了,其实就是启动过程中,当上述两个参数全为0时,网络设备只能叫ethx,先加载的驱动抢占了eth0和eth1时,(我这里是千兆的设备驱动 igb先启动)后起的设备想按udev规则rname时,发现eth0,和eth1 已经被占据了,因此命名失败,所以深入理解启动顺序和动作其实还是蛮重要的

参考链接  https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/networking_guide/sec-understanding_the_device_renaming_procere

红帽知识库文章引用如下

『肆』 虚拟机中的Linux eth0 启动时报错

你是使用NetworkManager管理的网卡吗?看这报错猜测跟NetworkManager有些关系啊。

『伍』 CentOS7网络配置教程

CentOS 7 网络配置怎么搞?在一台PC上安装了CentOS 7,当时选择了最小安装模式,安装完成后马上用ifconfig查看本机的ip地址(局域网已经有DHCP),发现报错,提示ifconfig命令没找到。 怎么办呢?接下来是我为大家收集的CentOS 7 网络配置教程,希望能帮到大家。
CentOS 7 网络配置教程
[root@centos1 ~]# ifconfig

-bash: ifconfig: command not found

首先,习惯性的输入echo $PATH(查看当前PATH环境变量,跟DOS的path命令一样的功能,注意Linux系统中的命令是区分大小写的),显示结果如下:

[root@centos1 ~]# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

从上面显示结果看,放置系统管理程序的路径/usr/sbin已存在,就是放外部命令的路径。直接用ls 查看/usr/sbin/目录,也没看到ifconfig,怎么回事?

[root@centos1 ~]# ls /usr/sbin/

我还是不死心,再用find命令也没找到ifconfig?

[root@centos1 ~]# find / -name "ifconfig"

此时心里有底了,应该是用某个命令代替了ifconfig了。上网络一查,果不其然,已经用ip命令代替ifconfig命令了。下面列出ip命令常用参数。

复制代码

代码如下:

ip [选项] 操作对象{link|addr|route...}< p># ip link show # 显示网络接口信息

# ip link set eth0 upi # 开启网卡

# ip link set eth0 down # 关闭网卡

# ip link set eth0 promisc on # 开启网卡的混合模式

# ip link set eth0 promisc offi # 关闭网卡的混个模式

# ip link set eth0 txqueuelen 1200 # 设置网卡队列长度

# ip link set eth0 mtu 1400 # 设置网卡最大传输单元

# ip addr show # 显示网卡IP信息

# ip addr add 192.168.0.1/24 dev eth0 # 设置eth0网卡IP地址192.168.0.1

# ip addr del 192.168.0.1/24 dev eth0 # 删除eth0网卡IP地址< p># ip route list # 查看路由信息

# ip route add 192.168.4.0/24 via 192.168.0.254 dev eth0 # 设置192.168.4.0网段的网关为192.168.0.254,数据走eth0接口

# ip route add default via 192.168.0.254 dev eth0 # 设置默认网关为192.168.0.254

# ip route del 192.168.4.0/24 # 删除192.168.4.0网段的网关

# ip route del default # 删除默认路由

输入ip addr命令后,发现enp2s0网卡(这个enp2s0是我这里的网卡)没有ip地址。

[root@centos1 ~]# ip addr

既然没有ip地址,那直接去/etc/sysconfig/network-scripts目录中看一下的网卡ip信息的配置文件名吧。

[root@centos1 ~]# ls /etc/sysconfig/network-scripts/

ifcfg-enp2s0 ifdown-eth ifdown-post ifdown-Team ifup-aliases ifup-ipv6 ifup-post ifup-Team init.ipv6-global

ifcfg-lo ifdown-ippp ifdown-ppp ifdown-TeamPort ifup-bnep ifup-isdn ifup-ppp ifup-TeamPort network-functions

ifdown ifdown-ipv6 ifdown-routes ifdown-tunnel ifup-eth ifup-plip ifup-routes ifup-tunnel network-functions-ipv6

ifdown-bnep ifdown-isdn ifdown-sit ifup ifup-ippp ifup-plusb ifup-sit ifup-wireless

[root@centos1 ~]#

从结果看,之前保存网卡ip信息的配置文件名也由以前的ifcfg-eth0变成了ifcfg-enp2s0,好吧,既然你给他命这么个名,那我就先用着。先cat一下ifcfg-enp2s0

[root@centos1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp2s0

复制代码

代码如下:

HWADDR=00:E0:69:01:6A:96

TYPE=Ethernet

BOOTPROTO=dhcp

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

IPV6_FAILURE_FATAL=no

NAME=enp2s0

UUID=5b0a7d76-1602-4e19-aee6-29f57618ca01

ONBOOT=no

从上面的配置中有看到虽然BOOTPROTO=dhcp,但是ONBOOT=no,这里用vi将ONBOOT=no改成ONBOOT=yes,然后重启CentOS。

[root@centos1 ~]# shutdown -r

重启完成后输入帐号和密码进入命令提示操作符继续用ip addr查看网卡信息。结果如下:

[root@centos1 ~]# ip add

1: lo: mtu 65536 qdisc noqueue state UNKNOWN

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: enp2s0: mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:e0:69:01:6a:96 brd ff:ff:ff:ff:ff:ff

inet 172.8.1.200/24 brd 172.8.1.255 scope global enp2s0

valid_lft forever preferred_lft forever

inet6 fe80::2e0:69ff:fe01:6a96/64 scope link

valid_lft forever preferred_lft forever

[root@centos1 ~]#

从上面结果看到,通过DHCP分配到的ip地址是172.8.1.200,虽然是测试机,但为了便于今后的远程连接,我们还是给这台机配置一个固定ip吧。

用vi打开ifcfg-enp2s0,输入以下参数,再用#将BOOTPROTO=dhcp注释。

复制代码

代码如下:

IPADDR0=172.8.1.211

PREFIX0=24

GATEWAY0=172.8.1.1

DNS1=172.8.1.1

完整参数如下,好了,网络配通了。明天继续 其它 功能测试。

[root@centos1 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp2s0

复制代码

代码如下:

HWADDR=00:E0:69:01:6A:96

TYPE=Ethernet

#BOOTPROTO=dhcp

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

IPV6_FAILURE_FATAL=no

NAME=enp2s0

UUID=5b0a7d76-1602-4e19-aee6-29f57618ca01

ONBOOT=yes

IPADDR0=172.8.1.211

PREFIX0=24

GATEWAY0=172.8.1.1

DNS1=172.8.1.1

[root@centos1 ~]#

待续......

看了“CentOS 7 网络配置教程”还想看:

1. CentOS7网络怎么设置自动启动

2. CentOS7改变网络接口名教程

3. CentOS 7 中查看网络连接的命令方法

『陆』 我用的VMware6.0中文版装的红帽企业版linux,怎么连接无线网络呀,而且打ifconfig会弹出command not find

你可以/sbin/ifconfig 加上绝对路径就可以了因为你的环境变量PATH没有到/sbin/下去搜索,所以不能直接用ifconfig命令.无法激活是因为你的配置不正确,必须要配置正确的IP啊,MAC地址啊才可以启动网卡无线网卡一般有其独特的标识不是普通的eth*应该会有另外的网卡配置文件/etc/sysconfig/network-scripts/下有网卡配置文件,贴一下看看

『柒』 Linux 应用 网络配置

网络信息查看
设置网络地址:
cat /etc/sysconfig/network-scripts/ifcfg-eth0
你将会看到:

DEVICE=eth0
BOOTPROTO=statics
HWADDR=00:0C:29:13:D1:6F
ONBOOT=yes
TYPE=Ethernet
IPADDR=192.168.0.212
NETMASK=255.255.255.0

BOOTPROTO=statics :表示使用静太IP地址。

ONBOOT=yes:表示开机时,启动这个网卡。

取动态IP地址地址
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp

设置好IP地址,现在还不能生效哦,要重新启动网卡才可以。

Ifconfig <网络接口名称> network <子网掩码>
例:# ifconfig eth0 192.168.1.222 netmask 255.255.255.0
注:手工配置linux网络只限于临时使用,配置不保存。
扩展:# ifconfig eth0:1 10.0.0.1 netmask 255.0.0.0 一块网卡配置多个子ip地址。
# ifconfig eth0 hw ether MAC地址 修改网卡的mac地址,

# /etc/rc.d/init.d/network start 启动network
# /etc/rc.d/init.d/network stop 停止network
# /etc/rc.d/init.d/network restart 重启network

主机名称配置文件,修改主机名
/etc/sysconfig/network

例:# vi /etc/sysconfig/network 使用vi编辑器打开主机名配置文件。

# vi /etc/sysconfig/network

NETWORKING=yes 网络是否可用。
HOSTNAME=xxxx xxxx为新设置的主机名。
本地主机名称解析文件
/etc/hosts
Hosts 和 DNS具有类似的主机名称解析功能
域名服务器配置文件
/etc/resolv.conf
最多可以设置3行,前面的生效

查看网路接口信息
1.了解linux中的网络接口设备
$/sbin/ifconfig 查看所有活动网络接口信息,其中包括一个lo环回端口。
2.查看指定网络接口的信息
$/sbin/ifconfig <网络接口名称> 查看指定接口信息。
3.查看系统中所有网络接口的信息
$/sbin/ifconfig –a 查看所有接口信息,包括非活动状态接口。
注:普通用户查看网络接口信息时,需要在命令前加“/sbin”,而管理员却不用。这是由于命令搜索路径的原因,可以通过“$echo $PATH”查看。
查看网关地址和路由信息
1、查看主机路由信息
#/route
显示当前linux主机中的路由表信息。
#/route |grep default
在route命令的显示结果中以“default”开始的行显示了,主机的默认网关地址,将route命令和grep命令组合,使用过滤route命令的显示结果只显示默认网关地址。
2.测试与其它主机的网络链接
$ping 目的主机地址
使用ping命令测试与其它主机的网络链接。ctrl+C终止。
$ping –c <测试数据包数量> <目的主机地址>
使用ping命令发送指定数量的数据包进行网络链接测试。
$使用ping命令进行网络链接测试的技巧。
注:当ping命令测试不成功时并不能判断当前主机到目标主机的连接是断开的,因为有很多因素,(如网络防火墙等)可以导致网络连接正常时主机之间无法ping通。
3、测试与其它主机的网络链接路径
$traceroute <目的主机地址>
traceroute命令显示当前主机与目的主机之间经过的所,有网络节点的地址,以及当前主机到每个中间结点的连接状态。
查看主机名称信息
1、查看当前主机名称
$Hostname 查看当前的主机名。
2、使用dns服务器查询域名
$Nslookup
交互模式:通常用于对DNS服务器进行测试
直接模式:用于查询某个域名对应的ip地址
使用网络命令进行网络设置
网络设置的方法
1、DHCP网络配置
$Dhclient 使用dhclient命令可以从DHCP服务器中申请新的网络配置应用到当前主机。
注:DHCP服务器通常提供给DHCP客户端最基本的网络配置信息,包括:接口ip地址,默认网关,DNS
服务器地址。
2、手工网络配置
网络接口ip地址和子网掩码
默认网关地址
当前主机名称
DNS服务器地址
Ip地址配置命令
Ifconfig <网络接口名称> network <子网掩码>
例:# ifconfig eth0 192.168.1.222 netmask 255.255.255.0
注:手工配置linux网络只限于临时使用,配置不保存。
扩展:# ifconfig eth0:1 10.0.0.1 netmask 255.0.0.0 一块网卡配置多个子ip地址。
# ifconfig eth0 hw ether MAC地址 修改网卡的mac地址,
路由配置命令
1、删除默认网关路由
$Route del default gw <默认网关地址>
2、添加默认网关路由
$Route add default gw <默认网关地址>
例:#route add default gw 192.168.1.1
主机名称配置命令
# hostname 123
将主机暂时名称改为123。
DNS域名解析
Nslookup
>server
显示linux系统中使用的DNS服务器地址,也可临时设置生效。
修改配置文件进行网络设置
使用工具进行网络设置
# Netconfig 图形界面设置网络,重启network后生效。
界面中需要填写的内容:
主机网络接口的ip地址。
网络接口的子网掩码。
默认网关地址。
主DNS服务器的ip地址。
网络服务启动脚本
/etc/init.d/network 从新启动才能生效
扩展:# /etc/rc.d/init.d/network start 启动network
# /etc/rc.d/init.d/network stop 停止network
# /etc/rc.d/init.d/network restart 重启network
网络接口配置文件
/etc/sysconfig/network-scripts/ifconfg-*
DEVICE=eth0 网卡编号
ONBOOT=yes 开机时是否启动网卡。
BOOTPROTO=static 静态ip或者DHCP动态获取。
IPADDR=192.168.1.163 ip
NETMASK=255.255.255.0 掩码
GATEWAY=192.168.1.1 网关
以下为动态获取方式:
DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp
停止和启动指定的网络接口
单个网络接口的配置进行修改后
Ifdown 网络接口名称 停止某个网络接口。
Ifup 网络接口名称 开启某个网络接口。
注:单个网络接口的配置文件进行修改后,不必每次都从新启动network服务使配置文件生效,可用以上命令。
扩展:对网络接口操作:
# ifconfig eth0 down 停止eth0接口
# ifconfig eth0 up 开启eth0接口
可以连续使用
Ifdown eth0 ; ifup eth0
主机名称配置文件
/etc/sysconfig/network
例:# vi /etc/sysconfig/network 使用vi编辑器打开主机名配置文件。
NETWORKING=yes 网络是否可用。
HOSTNAME=xxxx xxxx为新设置的主机名。
本地主机名称解析文件
/etc/hosts
Hosts 和 DNS具有类似的主机名称解析功能
域名服务器配置文件
/etc/resolv.conf
最多可以设置3行,前面的生效。

『捌』 河南网通用户如何使用LINUX红旗4.0实现上网

看起来好麻烦啊,我还是建议楼主用windows,浏览器可以换成IE6的,或者换别的。Linux的系统虽然还是比较稳定,但是兼容性就不能保证了。

『玖』 LINUX下命令ifconfig的问题

[xianghui@localhost xianghui]$ su root
Password:
[root@localhost xianghui]# ifconfig
bash: ifconfig: command not found

那是你没有完全取得root权限,你可以加个参数 -l,就行了
[root@localhost xianghui]# su -l
[root@localhost root]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:0C:29:C9:82:25
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:6290 errors:0 dropped:0 overruns:0 frame:0
TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:667643 (651.9 Kb) TX bytes:2052 (2.0 Kb)
Interrupt:10 Base address:0x2024

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:9113 errors:0 dropped:0 overruns:0 frame:0
TX packets:9113 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:623429 (608.8 Kb) TX bytes:623429 (608.8 Kb)

热点内容
trx波场在哪买 发布:2025-07-20 03:22:16 浏览:878
元宇宙和平行宇宙 发布:2025-07-20 03:15:48 浏览:293
以太坊交易签名js 发布:2025-07-20 03:00:02 浏览:43
中国哪些公司做元宇宙 发布:2025-07-20 02:58:39 浏览:661
以太坊调智能合约 发布:2025-07-20 02:51:57 浏览:793
数字货币用中文大写数字 发布:2025-07-20 02:32:30 浏览:59
pi就是元宇宙吗 发布:2025-07-20 01:50:20 浏览:553
蚂蚁矿机S7一天能挖多少比特币 发布:2025-07-20 01:41:51 浏览:628
比特股中国比特币平台 发布:2025-07-20 01:35:25 浏览:746
显卡挖矿eth能赚多少钱 发布:2025-07-20 01:33:04 浏览:1