制作CentOS 7一键自安装ISO镜像光盘

Centos 7发布也有一段时间了,最近公司有需要在Centos7上测试的需求,于是就开始着手定制。大致和之前写的制作CentOS 6.5一键自安装ISO镜像光盘差不多。这边主要写下和6.5的差别

一、拷贝相关软件包

6.5版本用的是根据安装的install.log,用脚本去筛除不需要的包;但在Centos7的/root下面并没有install.log文件。于是我们可以通过下面脚本用rpm -qa的方式得到所需安装的软件包。

Author:yangfannie.com
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
#!/bin/bash
rpm -qa  >package.txt
DVD= '/mnt/cdrom/Packages'
NEW_DVD= '/ISO/Packages'
while  read LINE
do
cp ${DVD}/${LINE}*.rpm /${NEW_DVD} ||  echo  "$LINE don't cp......."
done < package.txt
rm -f package.txt

二、配置 EFI 引导方式

1、EFI简介

参考百度百科EFI

2、分区

为了同时兼容mbr和efi方式,需同时创建 /boot 和 /boot/efi 分区

3、配置 EFI 引导

进入光盘目录EFI/BOOT/ ,编辑 grub.cfg 文件,和mbr方式类似,指明 ks.cfg 文件位置和安装源位置

三、生成ISO文件

这边和在CENTOS6.5以下版本的区别是,制作镜像需要使用CENTOS7系统,因为两者系统的genisoimage命令的版本不一样, 6的系统制作出来的 iso不能在 efi 环境启动。

如果要在 efi 启动,需要添加如下参数

Author:yangfannie.com
1
-eltorito-alt-boot -bimages/efiboot.img -no-emul-boot

6版本以下生成ISO命令:

Author:yangfannie.com
1
mkisofs -o CentOS-6.5_x86_64.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /ISO/

7版本生成ISO命令:

Author:yangfannie.com
1
genisoimage -o CentOS-7.iso -b isolinux/isolinux.bin -c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -R -J -v -T /CentOS/7

两者的区别就是mkisofs和genisoimage,其实最早时候Linux 系统使用cdrtools工具来管理 iso 及光盘, mkisofs 是 cdrtools 里面的一个工具,后来 cdrtools 更好了了授权许可,从 GPL 修改为 CDDL 许可,开源社区又推出了一套基于 GPL 的工具,cdrkit,mkisofs 也被 genisoimage 去掉,现在系统中的 mkisofs 实际是 genisoimage的软连接

centos挂载硬盘

测试机是云上的,我挂载了一个数据盘 用来存储数据。为100G的
1:挂载数据盘  df-h  查看硬盘情况,没有发现我新挂载的

fdisk -l   查看服务全部硬盘,查看我需要挂载的盘为sdb

格式化新加载的硬盘

fdisk /dev/sdb
n
p
1
回车
回车
wq

修改格式  mkfs -t ext4 /dev/sdb1

建立文件夹并挂载mkdir -p /sh && mount -t ext4 /dev/sdb1 /sh

然后就df -h  ,查看已经挂载成功

 

启动自动挂载,则先通过 “blkid /dev/sdb1” 命令,得到磁盘的 UUID,

 

然后在 vi  /etc/fstab 里面,加入:

然后重启即可

CentOS双网卡双IP设置

系统环境:CentOS Linux

网络环境: 两个IP地址,192.168.0.10和10.10.30.2,掩码是255.255.255.0,

这两个子网的网关地址分别是192.168.0.1和10.10.30.1。

 

1.为网卡eth0配置ip地址192.168.0.10,为网卡eth1配置ip地址为10.10.30.2配置文件为:

/etc/sysconfig/network-scripts/ifcfg-eth0

/etc/sysconfig/network-scripts/ifcfg-eth1

 

  1. 配置默认网关为任意一个。这个默认网关,决定了系统主动去使用网络时,使用的接口。

配置文件:/etc/sysconfig/network

修改以下内容

NETWORKING=yes    (表示系统是否使用网络,一般设置为yes。如果设为no,则不能使用网络)

HOSTNAME=centos    (设置本机的主机名,这里设置的主机名要和/etc/hosts中设置的主机名对应)

GATEWAY=192.168.0.1  (设置本机连接的默认网关的IP地址。)

 

  1. 编辑路由表

1.修改/etc/iproute2/rt_tables,添加内容:

252  net2

251  net3

 

2.#/etc/rc.local添加原路返回路由

ip route flush table net2

ip route add default via 192.168.0.1 dev eth0 src 192.168.0.10 table net2

ip rule add from 192.168.0.10 table net2

ip route flush table net3

ip route add default via 10.10.30.1 dev eth1 src 10.10.30.2 table net3

ip rule add from 10.10.30.2 table net3

WEB服务器和FTP服务器

WEB服务器和FTP服务器

WEB服务器

1、也称网页服务器或HTTP服务器

2、web服务器使用的协议是HTTP或HTTPS

3、端口号

HTTP协议端口号:TCP 80

HTTPS协议端口号:443

4、WEB服务器发布软件:

微软:IIS(可发布web网站和FTP站点)

Linux:Apache/LAMP/Tomcat/Nginx.etc

第三方:phpstudy、XAMPP

5、部署web服务器

1)配置静态IP地址

2)安装IIS-WEB插件

3)停用默认站点

4)新建网站–地址端口绑定–指定站点路径–设置权限

5)设置默认文档(设置首页)

6)一台服务器同时发布多个WEB站点:

6、练习测试

1)不同IP,相同端口(测试)

2)相同IP,不同端口(测试)

3)相同IP,相同端口,不同域名(DNS主机头)

7、网站类型

1)静态网站:一般扩展名为.html或.htm

无后台数据库

2)动态网页:一般扩展名为.asp或.php

有后台数据库,asp或php可以连接前台页面与后台数据库

FTP服务器:

1、File Transfor Protocol

文件传输协议

2、端口号:

TCP 20/21

3、FTP工作模式;

1)主动模式

21端口:控制端口

20端口:数据端口

服务器主动发送

2)被动模式

21端口+端口作为数据传输端口

 

  1. 注意:
  2. 主被动模式:阐述的是数据传输过程
  3. 主被动模式:选择权在客户机上
  4. 主被动模式:所谓主或被是站在服务器的角度上
  5. 下方评论区,总结的精辟!!1)配置静态IP3)使用默认站点或创建新的站点建议:FTP权限全部勾选,然后具体在NTFS里做!
  6. 4)去掉匿名登录
  7. 注意:用户最终权限为FTP权限与NTFS权限取交集
  8. 2)安装IIS-ftp软件
  9. 4、配置FTP服务器

1)配置静态IP

2)安装IIS-ftp软件

3)使用默认站点或创建新的站点

注意:用户最终权限为FTP权限与NTFS权限取交集

建议:FTP权限全部勾选,然后具体在NTFS里做!

4)去掉匿名登录

 

CentOS查看进程、杀死进程、启动进程等常用命令

关键字: linux 查进程、杀进程、起进程

1.查进程
ps命令查找与进程相关的PID号:
ps a 显示现行终端机下的所有程序,包括其他用户的程序。
ps -A 显示所有程序。
ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
ps -e 此参数的效果和指定”A”参数相同。
ps e 列出程序时,显示每个程序所使用的环境变量。
ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
ps -H 显示树状结构,表示程序间的相互关系。
ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
ps s 采用程序信号的格式显示程序状况。
ps S 列出程序时,包括已中断的子程序资料。
ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
ps u 以用户为主的格式来显示程序状况。
ps x 显示所有程序,不以终端机来区分。

最常用的方法是ps aux,然后再通过管道使用grep命令过滤查找特定的进程,然后再对特定的进程进行操作。
ps aux | grep program_filter_word,ps -ef |grep tomcat

ps -ef|grep java|grep -v grep 显示出所有的java进程,去处掉当前的grep进程。

2.杀进程
使用kill命令结束进程:kill xxx
常用:kill -9 324
Linux下还提供了一个killall命令,可以直接使用进程的名字而不是进程标识号,例如:# killall -9 NAME

3.进入到进程的执行文件所在的路径下,执行文件 ./文件名

附:

这是本人花了两天时间整理得来的,一些最常用的地球人都知道的命令就省去啦!最后提供pdf手册下载

1. 更改档案拥有者
命令 : chown [-cfhvR] [–help] [–version] user[:group] file…
功能 : 更改文件或者文件夹的拥有者
参数格式 :
user : 新的档案拥有者的使用者 IDgroup : 新的档案拥有者的使用者群体(group)
-c : 若该档案拥有者确实已经更改,才显示其更改动作
-f : 若该档案拥有者无法被更改也不要显示错误讯息
-h : 只对于连结(link)进行变更,而非该 link 真正指向的档案
-v : 显示拥有者变更的详细资料
-R : 对目前目录下的所有档案与子目录进行相同的拥有者变更(即以递回的方式逐个变更)

例如:chown -R oracle:oinstall /oracle/u01/app/oracle
更改目录拥有者为oracle

2. 修改权限
命令:chmod (change mode)
功能:改变文件的读写和执行权限。有符号法和八进制数字法。
选项:(1)符号法:
命令格式:chmod {u|g|o|a}{+|-|=}{r|w|x} filename
u (user)   表示用户本人。
g (group)  表示同组用户。
o (oher)   表示其他用户。
a (all)    表示所有用户。
+          用于给予指定用户的许可权限。
–          用于取消指定用户的许可权限。
=          将所许可的权限赋给文件。
r (read)   读许可,表示可以拷贝该文件或目录的内容。
w (write)  写许可,表示可以修改该文件或目录的内容。
x (execute)执行许可,表示可以执行该文件或进入目录。

(2)八进制数字法:
命令格式:chmod abc file
其中a,b,c各为一个八进制数字,分别表示User、Group、及Other的权限。
4 (100)    表示可读。
2 (010)    表示可写。
1 (001)    表示可执行。
若要rwx属性则4+2+1=7;
若要rw-属性则4+2=6;
若要r-x属性则4+1=5。

例如:# chmod a+rx filename
让所有用户可以读和执行文件filename。
# chmod go-rx filename
取消同组和其他用户的读和执行文件filename的权限。
# chmod 741 filename
让本人可读写执行、同组用户可读、其他用户可执行文件filename。
# chmod -R 755 /home/oracle
递归更改目录权限,本人可读写执行、同组用户可读可执行、其他用户可读可执行

3. 修改文件日期
命令:touch
格式:touch filenae
功能:改变文件的日期,不对文件的内容做改动,若文件不存在则建立新文件。
例如:% touch file

4. 链接文件
命令:ln (link)
格式:ln [option] filename linkname
ln [option] directory pathname
功能:为文件或目录建立一个链。其中,filename和directory是源文件名和
源目录名;linkname和pathname分别表示与源文件或源目录名相链接的
文件或目录。
选项:-s  为文件或目录建立符号链接。不加-s表示为文件或目录建立硬链接
注释:链接的目地在于,对一个文件或目录赋予两个以上的名字,使其可以出
现在不同的目录中,既可以使文件或目录共享,又可以节省磁盘空间。
例如:% ln -s filename linkname

5. 显示日期
命令:date
例如:% date

6. 显示日历
命令:cal (calendar)
格式:cal [month] year
功能:显示某年内指定的日历
例如:% cal 1998

7. 显示文件头部
命令:head
格式:head [option] filename
功能:显示文件的头部
选项:缺省  显示文件的头10行。
-i    显示文件的开始 i行。
例如:% head filename

8. 显示文件尾部
命令:tail
格式:tail [option] filename
功能:显示文件的尾部
选项:缺省  显示文件的末10行。
-i    显示文件最后 i行。
+i    从文件的第i行开始显示。
例如:% tail filename

9. 显示用户标识
命令:id
格式:id [option] [user]
功能:显示用户标识及用户所属的所有组。
选项:-a 显示用户名、用户标识及用户所属的所有组
注释:
例如:% id username

10. 查看当前登录的用户
命令:users

11. 显示都谁登录到机器上
命令:who
格式:who
功能:显示当前正在系统中的所有用户名字,使用终端设备号,注册时间。
例如:% who

12. 显示当前终端上的用户名
命令:whoami
格式:whoami
功能:显示出当前终端上使用的用户。
例如:% whoami

13. 寻找文件
命令:find
格式:find pathname [option] expression
功能:在所给的路经名下寻找符合表达式相匹配的文件。
选项:-name     表示文件名
-user     用户名,选取该用户所属的文件
-size     按大小查找,以block为单位,一个block是512B
-mtime n  按最后一次修改时间查找,选取n天内被修改的文件
-perm     按权限查找
-type     按文件类型查找
-atime    按最后一次访问时间查找

例如:% find ./ -name ‘*abc*’ -print

14. 搜索文件中匹配符
命令:grep
格式:grep [option] pattern filenames
功能:逐行搜索所指定的文件或标准输入,并显示匹配模式的每一行。
选项:-i    匹配时忽略大小写
-v 找出模式失配的行

例如:% grep -i ‘java*’ ./test/run.sh

15. 统计文件字数
命令:wc [option] filename
功能:统计文件中的文件行数、字数和字符数。
选项:-l 统计文件的行数
-w 统计文件的单词数
-c 统计文件的字符数
注释:若缺省文件名则指标准输入
例如:% wc -c ./test/run.sh

16. 显示磁盘空间
命令:df (disk free)
格式:df [option]
功能:显示磁盘空间的使用情况,包括文件系统安装的目录名、块设备名、总
字节数、已用字节数、剩余字节数占用百分比。
选项:
-a:显示全部的档案系统和各分割区的磁盘使用情形
-i:显示i -nodes的使用量
-k:大小用k来表示 (默认值)
-t:显示某一个档案系统的所有分割区磁盘使用量
-x:显示不是某一个档案系统的所有分割区磁盘使用量
-T:显示每个分割区所属的档案系统名称
-h: 表示使用「Human-readable」的输出,也就是在档案系统大小使用 GB、MB 等易读的格式。
注释:
例如:% df -hi

17. 查询档案或目录的磁盘使用空间
命令:du (disk usage)
格式:du [option] [filename]
功能:以指定的目录下的子目录为单位,显示每个目录内所有档案所占用的磁盘空间大小
选项:
-a:显示全部目录和其次目录下的每个档案所占的磁盘空间
-b:大小用bytes来表示 (默认值为k bytes)
-c:最后再加上总计 (默认值)
-s:只显示各档案大小的总合
-x:只计算同属同一个档案系统的档案
-L:计算所有的档案大小
-h: 表示档案系统大小使用 GB、MB 等易读的格式。
例如:% du -a
% du -sh /etc 只显示该目录的总合
% du /etc | sort -nr | more 统计结果用sort 指令进行排序,
sort 的参数 -nr 表示要以数字排序法进行反向排序。

18. 显示进程
命令:ps
格式:ps [option]
功能:显示系统中进程的信息。包括进程ID、控制进程终端、执行时间和命令。
选项:
-a 显示所有进程信息
-U uidlist 列出这个用户的所有进程
-e 显示当前运行的每一个进程信息
-f 显示一个完整的列表
-x 显示包括没有终端控制的进程状况 。
注释:      例如:% ps -ef    % ps -aux 然后再利用一个管道符号导向到grep去查找特定的进程,然后再对特定的进程进行操作。  19. 终止进程      命令:kill      格式:kill [option] pid      功能:向指定的进程送信号或终止进程。kill指令的用途是送一个signal给某一个process,      因为大部份送的都是用来杀掉 process 的 SIGKILL 或 SIGHUP ,因此称为 kill       选项:-9  强行终止进程      注释:pid标示进程号,可由ps命令得到。      例如:% kill -9 pid      你也可以用 kill -l 来察看可代替 signal 号码的数目字。kill 的详细情形请参阅 man kill。  20. 查看自己的IP地址      命令:ifconfig      格式:ifconfig -a      21. 查看路由表      命令:netstat      格式:netstat -rn  22. 远程登录      命令:telnet      格式:telnet hostname  23. 文件传输      命令:ftp (file transfer program)      格式:ftp hostname      功能:网络文件传输及远程操作。      选项:ftp命令:             cd [dirname]  进入远程机的目录             lcd [dirname] 设置本地机的目录             dir/ls        显示远程的目录文件             bin           以二进制方式进行传输     asc           以文本文件方式进行传输             get/mget      从远程机取一个或多个文件             put/mput      向远程机送一个或多个文件             prompt        打开或关闭多个文件传送时的交互提示             close         关闭与远程机的连接             quit          退出ftp     !/exit ftp登陆状态下,!表示暂时退出ftp状态回到本地目录,exit表示返回ftp状态      注释:      例如:% ftp hostname  24. 查看自己的电子邮件      命令:mailx      格式:mailx      选项:  delete  删除  next    下一个  quit    退出           reply   回复     25. 回忆命令      命令:history      格式:history      功能:帮助用户回忆执行过的命令。      选项:      注释:      例如:% history  26. 网上对话      命令:talk      格式:talk username      功能:在网上与另一用户进行对话。      选项:      注释:对话时系统把终端分为上下两部分,上半部显示自己键入信息,下半部            显示对方用户键入的信息。键入delete或Ctrl+C则结束对话。      例如:% talk username  27. 允许或拒绝接受信息      命令:mesg (message)      格式:mesg [n/y]      功能:允许或拒绝其它用户向自己所用的终端发送信息。      选项:n 拒绝其它用户向自己所用的终端写信息            y 允许其它用户向自己所用的终端写信息(缺省值)      注释:      例如:% mesg n  28. 给其他用户写信息      命令:write      格式:write username [ttyname]      功能:给其他用户的终端写信息。      选项:      注释:若对方没有拒绝,两用户可进行交谈,键入EOF或Ctrl+C则结束对话。      例如:write username  29. 创建、修改、删除用户和群组      a. 创建群组:  例如: groupadd oinstall    创建群组名为oinstall的组  groupadd -g 344 dba   创建组号是344的组,此时在/etc/passwd文件中产生一个组ID(GID)是344的项目。      b. 修改群组:  groupmod:该命令用于改变用户组帐号的属性  groupmod –g 新的GID 用户组帐号名  groupmod –n 新组名 原组名:此命令由于改变用户组的名称      c. 删除群组:  groupdel 组名:该命令用于删除指定的组帐号      d. 新建用户:  命令: useradd [-d home] [-s shell] [-c comment] [-m [-k template]]  [-f inactive] [-e expire ] [-p passwd] [-r] name  主要参数  -c:加上备注文字,备注文字保存在passwd的备注栏中。   -d:指定用户登入时的启始目录。  -D:变更预设值。  -e:指定账号的有效期限,缺省表示永久有效。  -f:指定在密码过期后多少天即关闭该账号。  -g:指定用户所属的群组。  -G:指定用户所属的附加群组。  -m:自动建立用户的登入目录。  -M:不要自动建立用户的登入目录。  -n:取消建立以用户名称为名的群组。  -r:建立系统账号。  -s:指定用户登入后所使用的shell。  -u:指定用户ID号。  举例: # useradd -g oinstall -G dba oracle  创建Oracle用户           e. 删除用户  命令: userdel 用户名  删除指定的用户帐号  userdel –r 用户名(userdel 用户名;rm 用户名):删除指定的用户帐号及宿主目录  例:#useradd -g root kkk //把kkk用户加入root组里      f. 修改用户  命令: usermod 修改已有用户的信息  usermod –l 旧用户名 新用户名: 修改用户名  usermod –L 用户名: 用于锁定指定用户账号,使其不能登陆系统  usermod –U 用户名: 对锁定的用户帐号进行解锁  passwd –d 用户名: 使帐号无口令,即用户不需要口令就能登录系统  例:#usermod -l user2 user1 //把用户user2改名为user1  30. 启动、关闭防火墙  永久打开或则关闭  chkconfig iptables on  chkconfig iptables off  即时生效:重启后还原  service iptables start  service iptables stop       或者:  /etc/init.d/iptables start  /etc/init.d/iptables stop  31. 启动VSFTP服务  即时启动: /etc/init.d/vsftpd start  即时停止: /etc/init.d/vsftpd stop  开机默认VSFTP服务自动启动:  方法一:(常用\方便)  [root@localhost etc]# chkconfig –list|grep vsftpd ( 查看情况)  vsftpd          0:off   1:off   2:off   3:off   4:off   5:off   6:off  [root@localhost etc]# chkconfig vsftpd on  (执行ON设置)  或者:方法二:  修改文件 /etc/rc.local , 把行/usr/local/sbin/vsftpd & 插入文件中,以实现开机自动启动。  32. vi技巧  a. 进入输入模式  新增 (append)  a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。  A:从光标所在列最後面的地方开始新增资料。  插入 (insert)  i:从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。  I :从光标所在列的第一个非空白字元前面开始插入资料。  开始 (open)  o :在光标所在列下新增一列并进入输入模式。  O: 在光标所在列上方新增一列并进入输入模式。  b. 退出vi  在指令模式下键入:q,:q!,:wq或:x(注意:号),就会退出vi。其中:wq和:x是存盘退出,而:q是直接退出,如果文件已有新的变化,vi会提示你保存文件而:q命令也会失效,这时你可以用:w命令保存文件后再用:q 退出,或用:wq或:x命令退出,如果你不想保存改变后的文件,你就需要用:q!命令,这个命令将不保存文件而直接退出vi。  c. 删除与修改文件的命令:  x:删除光标所在字符。  dd :删除光标所在的列。  r :修改光标所在字元,r 後接著要修正的字符。  R:进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为止。  s:删除光标所在字元,并进入输入模式。  S:删除光标所在的列,并进入输入模式。  d. 屏幕翻滚类命令  Ctrl+u: 向文件首翻半屏  Ctrl+d: 向文件尾翻半屏  Ctrl+f: 向文件尾翻一屏  Ctrl+b: 向文件首翻一屏  nz: 将第n行滚至屏幕顶部,不指定n时将当前行滚至屏幕顶部。  e. 删除命令  ndw或ndW: 删除光标处开始及其后的n-1个字  do: 删至行首  d$: 删至行尾  ndd: 删除当前行及其后n-1行  x或X: 删除一个字符,x删除光标后的,而X删除光标前的  Ctrl+u: 删除输入方式下所输入的文本  f. 搜索及替换命令  /pattern: 从光标开始处向文件尾搜索pattern  ?pattern: 从光标开始处向文件首搜索pattern  n: 在同一方向重复上一次搜索命令  N: 在反方向上重复上一次搜索命令  :s/p1/p2/g: 将当前行中所有p1均用p2替代  :n1,n2s/p1/p2/g: 将第n1至n2行中所有p1均用p2替代  :g/p1/s//p2/g: 将文件中所有p1均用p2替换  g. 复制,黏贴  (1) 选定文本块,使用v进入可视模式;移动光标键选定内容  (2) 复制选定块到缓冲区,用y;复制整行,用yy  (3) 剪切选定块到缓冲区,用d;剪切整行用dd  (4) 粘贴缓冲区中的内容,用p  h. 其他  在同一编辑窗打开第二个文件,用:sp [filename]  在多个编辑文件之间切换,用Ctrl+w

Centos7下搭建Socks5代理服务器

yum install -y gcc gcc-c++ automake make pam-devel openldap-devel cyrus-sasl-devel openssl-devel #安装依赖包
上传安装包
tar zxvf ss5-3.8.9-8.tar.gz #解压安装包
cd ss5-3.8.9 #进入安装包
./configure #编释
make
make install
chmod +x /etc/init.d/ss5 #启动脚本加执行权限
#在ss5.conf中找到auth和permit两行,按照下面的格式进行修改
vi /etc/opt/ss5/ss5.conf
# line 87 、line 203去掉注释
auth 0.0.0.0/0 – u
permit u 0.0.0.0/0 – 0.0.0.0/0 – – – – –

#设置监听端口
vi /etc/sysconfig/ss5
# Add startup option here
SS5_OPTS=” -u root -b 0.0.0.0:6666″
systemctl daemon-reload #更新加载
#启动ss5服务
systemctl start ss5

#如需使用用户名密码登录,修改配置文件中的两行

vi /etc/opt/ss5/ss5.conf
auth 0.0.0.0/0 – u
permit u 0.0.0.0/0 – 0.0.0.0/0 – – – – –
#设置用户名和密码,一个用户和密码一行,用空格间隔
vi /etc/opt/ss5/ss5.passwd
user1 123
user2 123
#重启服务

在 CentOS 7 上绑定附加 IP 有几种方法,本文将一一进行解释

确定网卡名称
在正式开始配置附加IP的绑定之前,我们需要先确定网卡的名称,可以通过以下命令来输出:

ip link | awk ‘NR%2==1’ | awk ‘{print $2,$8,$9}’ | tr -d ‘:’
输出的内容应该类似于以下结果:

lo state UNKNOWN
enp3s0 state UP
enp4s0 state DOWN
第一个设备 lo 代表了loopback,第二个设备通常就是你的网卡设备,可以看到它目前的状态是 UP(即正常在线)。在上述的例子中,我们看到了 enp4s0,它是另外一张网卡但状态是 DOWN(离线),因此 enp3s0 是我们需要绑定IP的网卡。 如果你的情况是:两张网卡都是UP状态,你需要先做一个判断,选出你倾向于绑定IP上去的网卡。

定位配置文件
在上一步的一个命令中,我们使用 ip link 输出了网卡名称,现在我们可以定位它的配置文件位置(通常都在 /etc/sysconfig/network-scripts/目录中),配置文件通常都以 ifcfg-设备名称 的命名格式存在,譬如:

cat /etc/sysconfig/network-scripts/ifcfg-enp3s0
输出结果:

TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=enp3s0
UUID=a007fd6d-4cc5-45b6-9a38-991a8e820eaf
DEVICE=enp3s0
ONBOOT=yes
IPADDR=10.0.0.2
PREFIX=29
GATEWAY=10.0.0.1
DNS1=8.8.8.8
DNS2=8.8.4.4
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
可以看到,目前网卡上绑定的IP是 10.0.0.2,它存在于一个 CIDR /29 的IP段中,这意味着10.0.0.3, 10.0.0.4, 10.0.0.5, 以及 10.0.0.6 也应该处于可用状态(如果你是从IDC处购得服务器,那么先确认服务商是分配给你了一个CIDR /29的IP段)。

绑定IP地址
如果你要添加绑定的IP数量较少,可以手动进行绑定。编辑网卡配置文件:

vi /etc/sysconfig/network-scripts/ifcfg-enp3s0
因为你的网卡本身已经绑定了一个IP:IPADDR=10.0.0.2 你可以用以下方式添加这个 CIDR 段内的其他 IP:

IPADDR0=192.168.1.3
IPADDR1=192.168.1.4
IPADDR2=192.168.1.5
IPADDR3=192.168.1.6
PREFIX0=29
PREFIX1=29
PREFIX2=29
PREFIX3=29
重启服务器网络使其生效:

systemctl restart network
如果你只是想临时绑定某个或某几个IP,可以使用命令行添加的方式,这种方式会在服务器重启后失效:

ip addr add IP或IP段 dev 网卡名 label 设备名:别名
比如:

ip addr add 192.168.1.44/32 dev enp3s0 label enp3s0:0
如果要移除绑定,则可以使用:

ip addr del IP地址 dev 设备名
例如:

ip addr del 192.168.1.72/32 dev enp3s0
绑定IP段(此方法已过时)
首先我们需要对网卡配置文件做一个小小的调整:

vi /etc/sysconfig/network-scripts/ifcfg-enp3s0
如果该文件中没有 NM_CONTROLLED=NO 这一行,则将这一行加到文件的最底部,在CentOS 7中添加IP段绑定这是不可缺少的一步,接着我们创建IP段对应的配置文件:

vi /etc/sysconfig/network-scripts/ifcfg-enp3s0-range
对于IP段的数量,系统并没有限制,如果你有多个IP段希望配置,则可以使用 ifcfg-enp3s0-range0, ifcfg-enp3s0-range1 这样的命名方式。 添加以下内容到文件中:

IPADDR_START=192.168.1.2 #起始IP
IPADDR_END=192.168.1.254 #结束IP
PREFIX=24 #CIDR IP段标识
CLONENUM_START=0 #别名起始号
如果你添加的IP段和你当前网卡绑定的IP不在一个段内,且不共用一个网关(Gateway),那么你还需要向文件中添加:

GATEWAY=网关地址
一切就绪之后,重启服务器网络:

systemctl restart network
Update: 更新方法
在 CentOS 7 中我们有了更好的绑定方式,绑定的速度更快,也不会出现重启网络超时的现象。

### 查看网卡名
ip addr

### 添加绑定
for I in $(seq 0 255); do nmcli con mod enp4s0f0 +ipv4.addresses 192.168.0.${I}; done;

### 激活网卡
nmcli con up enp4s0f0
其中,0 和 255 分别为 IP 段的起始与结束IP,enp4s0f0 为服务器的网卡名称。

如果在添加的过程中有错误,可以将加号 + 改为减号 – 来撤销之前的绑定。