您当前的位置:首页 > 计算机 > 系统应用 > Linux

CentOS 使用技巧分享

时间:12-14来源:作者:点击数:

CentOS 6 关闭 ipv6

查看系统是否开启 ipv6

通过网卡属性查看

命令:ifconfig

注释:有 inet6 addr: ... 的表示开启了ipv6功能

通过内核模块加载信息查看

命令:lsmod | grep ipv6

ipv6 关闭方法

在/etc/modprobe.d/dist.conf结尾添加

alias net-pf-10 off
alias ipv6 off

ipv6 开启方法

首先输入

注释掉 /etc/modprobe.d/dist.conf 中

alias net-pf-10 off
alias ipv6 off

看一下 ipv6 是否关闭:ifconfig

添加 ipv6 模块

modprobe ipv6(不用重启)


CentOS 7 禁用 IPV6

最根本的解决方法:修改 grub,在引导时就不加载 IPV6 模块

# vi /rtc/default/grub
GRUB_CMDLINE_LINUX="ipv6.disable=1 ..."
# grub2-mkconfig -o /boot/grub2/grub.cfg

验证 IPV6 是否关闭

通过命令:

Check to see if you’re installation is currently set up for IPv6:

# cat /proc/sys/net/ipv6/conf/all/disable_ipv6

If the output is 0, IPv6 is enabled.

If the output is 1, IPv6 is already disabled.

禁用 IPV6 的操作步骤

Step 1: add this rule in /etc/sysctl.conf : net.ipv6.conf.all.disable_ipv6=1

Step 2: add this rule in /etc/sysconfig/network: NETWORKING_IPV6=no

Step 3: add this setting for each nic X (X is the corresponding number for each nic) in /etc/sysconfig/network-scripts/ifcfg-ethX: IPV6INIT=no

Step 4: disable the ip6tables service : chkconfig ip6tables off

Step 5: Reload the sysctl configuration:

# sysctl -p
or
# reboot

注意:禁用 IPV6 后,可能会导致某些服务无法启动,比如 VSFTP,对于 VSFTP,需要修改 /etc/vsftpd/vsftpd.conf 文件中的 listen 和 listen_ipv6 两个选项:

listen=YES
listen_ipv6=NO

CentOS 7 更改网卡名到以前的 eth0

# vim /etc/default/grub
#在GRUB_CMDLINE_LINUX的最后,加上 net.ifnames=0 biosdevname=0 的参数
GRUB_CMDLINE_LINUX=”rd.lvm.lv=rootvg/usrlv rd.lvm.lv=rootvg/swaplv crashkernel=auto vconsole.keymap=us rd.lvm.lv=rootvg/rootlv vconsole.font=latarcyrheb-sun16 rhgb quiet net.ifnames=0 biosdevname=0”

# grub2-mkconfig -o /boot/grub2/grub.cfg
# mv /etc/sysconfig/network-scripts/ifcfg-enxxxx /etc/sysconfig/network-scripts/ifcfg-eth0
# reboot

配置 DHCP

# 查询机器名是否可用
# nslookup uniquehostname

# 设置机器名
# echo "HOSTNAME=uniquehostname" >> /etc/sysconfig/network

# 设置DHCP机器名
# echo "DHCP_HOSTNAME=uniquehostname" >> /etc/sysconfig/network-scripts/ifcfg-eth0

转换乱码中文文件名

# export LANG=zh_CN.GBK
# convmv -f gbk -t utf-8 ...

iptables 端口转发

# vi /etc/sysctl.conf
# net.ipv4.ip_forward = 1
# sysctl -p

# iptables -t nat -A PREROUTING -p tcp --dport 外部端口 -j DNAT --to-destination 内部IP:内部端口
# iptables -t nat -A POSTROUTING -p tcp -s 内部IP --sport 内部端口 -j SNAT --to-source 外部IP:外部端口

动态添加删除 SCSI 硬盘

第一步:将新硬盘插到机器上;

第二步:以 root 用户运行命令:

# echo "scsi add-single-device x y z u" > /proc/scsi/scsi
其中:
  x是硬盘所在SCSI控制器号(一般机器就一个SCSI控制器,所以就是0);
  y是硬盘所在SCSI通道的编号(一般单通道的就是0,多通道的要看是哪个通道了);
  z是硬盘的SCSI ID号(可以通过具体插入的硬盘插槽来判断);
  u是硬盘的lun号(默认情况都是0)

如果 x y z 参数不正确,系统是不能识别添加的硬盘的,可以通过查看 /proc/scsi/scsi 文件的内容来判断是否添加成功。添加好之后,这个文件中会多出一个设备。这个文件中包含系统识别到的所有SCSI设备的详细信息,包括厂商、型号、介质访问类型等。

然后再看 /proc/partition 文件,发现已经识别出硬盘了!接下来就可以分区、格式化、使用了,由于使用parted分区工具不需要重新引导系统,所以整个添加硬盘的过程是不需要重启系统的。

如果要移除硬盘,那么可以这样操作:

第一步:以 root 用户运行命令:

# echo "scsi remove-single-device x y z u" > /proc/scsi/scsi
  x y z u的定义同上

第二步:物理上断开硬盘的连接。

# echo "- - -" >  /sys/class/scsi_host/host2/scan
  host2一般是/sys/class/scsi_host/下最大的那个文件,也就相当于最后加入的设备。需要根据自己的系统情况而定
  "- - -" 这三个-之间是有空格的

CentOS 6 配置 Docker 代理

# vi /etc/sysconfig/docker

HTTP_PROXY="代理服务器"
HTTPS_PROXY="${HTTP_PROXY}"
http_proxy="${HTTP_PROXY}"
https_proxy="${HTTPS_PROXY}"
export HTTP_PROXY HTTPS_PROXY http_proxy https_proxy

CentOS 7 配置 Docker 代理

docs.docker 商业网/engine/admin/systemd/

# mkdir /etc/systemd/system/docker.service.d
# vi /etc/systemd/system/docker.service.d/http-proxy.conf
[Service]
Environment="HTTP_PROXY=http://proxy.example.com:80/" "NO_PROXY=localhost,127.0.0.1,docker-registry.somecorporation.com"

# sudo systemctl daemon-reload

# systemctl show --property=Environment docker
Environment=HTTP_PROXY=http://proxy.example.com:80/

# sudo systemctl restart docker

升级 Linux 内核

1、下载内核源码包

从 kernel org 下载内核,可以看到有 stable、longterm 等版本,longterm 是比 stable 更稳定的版本,会长时间更新

Linux内核版本有两种:稳定版和开发版 ,Linux 内核版本号由 3 个数字组成:r.x.y

  • r:主版本号
  • x:次版本号,偶数表示稳定版本;奇数表示开发中版本
  • y:修订版本号,表示修改的次数

2、解压

# xz –d linux-r.x.y.tar.xz
# tar -xf linux-r.x.y.tar

3、更新当前系统

# yum update
# yum upgrade

4、安装编译内核需要的软件

# 一口气安装编译时所需的一切工具
# yum groupinstall "Development Tools"
# 必须这样才能让 make *config 这个指令正确地执行
# yum install ncurses-devel
# 如果你没有 X 环境,这一条可以不用
# yum install qt-devel
# 创建 CentOS-6 内核时需要它们
# yum install hmaccalc zlib-devel binutils-devel elfutils-libelf-devel

5、查看当前系统内核

# uname –r

6、拷贝当前系统的配置文件

# cp /boot/config-2.6.32-358.11.1.el6.x86_64 .config

7、使用旧内核配置,并自动接受每个新增选项的默认设置

# sh -c 'yes "" | make oldconfig'
# make menuconfig

8、编译

# 清理上次编译的现场
# make mrproper
# 生成内核文件
# make -j8 bzImage
# 编译模块
# make -j8 modules
# 编译安装模块
# make -j8 modules_install

-j 表示使用几个线程,不超过 CPU 核心数

9、安装

# make install
# 没有initrd.img时手动创建
# mkinitramfs r.x.y -o /boot/initrd.img-r.x.y

10、修改 Grub 引导顺序

# vi /boot/grub/grub.conf
default=0

11、重启

# reboot now

12、查看新内核

# uname –r

13、手动修改 initrd/initramfs

# 解压 initrd 文件
# cp /boot/initrd-2.6.35.13.img /tmp
# cd /tmp
# ls
initrd-r.x.y.img
# mkdir newinitrd
# cd newinitrd
# zcat ../initrd-r.x.y.img | cpio -i
# ls
# 编辑init文件
# vi init
# 重新打包
# find . | cpio –c –o > ../initrd
# cd ..
# gzip -9 < initrd > initrd-r.x.y.img
# 复制initrd文件
# cp initrd-r.x.y.img /boot

启用关闭 SELinux

# 立即关闭selinux
# /usr/sbin/setenforce 0
# 立即启用selinux
# /usr/sbin/setenforce 1

# 全局关闭selinux
# 编辑/etc/selinux/config
# 修改SELINUX=enforcing为SELINUX=disabled

# selinux禁止访问没有策略类型httpd_sys_content_t的目录/文件
# 因此web服务和ftp服务的目录必须修改策略类型
# chcon system_u:object_r:httpd_sys_content_t:s0 hls/ -R

iptables 允许 passive

安装 nf_conntrack_ftp 和 nf_nat_ftp

# modprobe nf_conntrack_ftp nf_nat_ftp

增加 iptables 规则

# iptables -A INPUT -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 21 -j ACCEPT

vsftpd 增加虚拟用户

1、在 /etc/vsftpd/vsftpd.conf 最后增加如下配置

guest_enable=YES
guest_username=ftp
user_config_dir=/etc/vsftpd/vuser_conf
virtual_use_local_privs=YES

如果没有叫做ftp的用户,可以执行 useradd -d /home/vsftpd -s /sbin/nologin vsftpd 创建vsftpd用户,相应的guest_username=vsftpd

2、建立文件 /etc/vsftpd/vuser_passwd.txt ,增加两行内容,其中奇数行为用户名,偶数行为密码

username
password

3、使用BerkeleyDB生成用户认证用的db文件

# db_load -T -t hash -f /etc/vsftpd/vuser_passwd.txt /etc/vsftpd/vuser_passwd.db

如果 BerkeleyDB 未安装,可以执行 yum install db4 db4-utils 命令安装

如果修改了密码,需要删除 /etc/vsftpd/vuser_passwd.db 后重新生成

4、编辑 /etc/pam.d/vsftpd,在最前面增加两行

auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_passwd

文件名要与 /etc/vsftpd/vsftpd.conf 中 pam_service_name 的内容一致

5、建立目录 /etc/vsftpd/vuser_conf ,建立文件 /etc/vsftpd/vuser_conf/username ,设置虚拟用户的权限等

local_root=/home/vsftpd
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

文件名要与虚拟用户名相同,local_root 为虚拟用户根目录,根据自己的配置进行修改

7、编辑 /etc/vsftpd/chroot_list,增加一行,将锁定虚拟用户的根目录

username

8、重启 vsftpd

# service vsftpd restart

man 的节(section)

section name comment
1 用户命令(User Commands) 可由任何人启动的
2 系统调用(System Calls) 即由内核提供的函数
3 例程(C Library Functions) 即库函数
4 设备(Devices and Special Files) 即/dev目录下的特殊文件
5 文件格式描述(File Formats and Conventions) 例如/etc/passwd
6 游戏(Games et. Al) 不用解释啦
7 杂项(Miscellanea) 例如宏命令包、惯例等
8 系统管理员工具(System Administration tools and Deamons) 只能由root启动
9 其他(Linux特定的) 用来存放内核例行程序的文档
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门
本栏推荐