这篇文章不定期更新在使用 CentOS 7 过程中的操作日志。
说明:下列大部分操作都是在阿里云 ECS 进行的。
最小化安装之后
网络管理
1 | nmcli d |
激活网卡即可
无法重启 network
network.service - LSB: Bring up/down networking
this error pops up with any issue while setting up network: IP conflict, routing issues, etc.
Can’t start CentOS 7 “network” service
解决办法: 暂时移除 /etc/sysconfig/network-scripts/ifcfg-*
中用不到的网络接口配置。
软件包管理
查看某个软件包的安装信息
1 |
|
正确地更换 SSH 端口
新增端口
!!! 不要直接干掉 22 端口
1 | # 注意不是修改 /etc/ssh/ssh_config !!! |
Selinux
1 | yum install policycoreutils-python |
防火墙
CentOS 6 => iptables
1 | # 安全起见 |
CentOS 7 => fireware
1 | systemctl stop iptables.service |
查看已开放端口
1 | firewall-cmd --list-ports |
查看 sshd 是否监听了新端口
1 | ss -tnlp | grep sshd |
测试新端口并删除默认端口
!!! 一定要先试试新端口是否可以连接 若能才删除默认 22 端口 否则就等只有恢复磁盘和快照了…
1 | vim /etc/ssh/sshd_config |
ssh 取消监听 22 端口,就已经配置好了,防火墙只不过是在 ssh 外多一层访问限制。
此时若使用 22 端口连接则会提示:ssh: connect to host {ip} port 22: Connection refused。
如果要做的更好还可以将 22 端口的访问流量转向访问者本地:
1 | firewall-cmd --permanent --zone=public --add-forward-port=port=22:proto=tcp:toport=22:toaddr=127.0.0.1 |
此时若使用 22 端口连接则会提示:*_ssh_exchangeidentification: read: Connection reset by peer*。
另外,使用一个未监听或未放行的端口连接的提示是:*_ssh_exchangeidentification: read: Operation timed out*。
撤销重定向:
1 | firewall-cmd --permanent --zone=public --remove-forward-port=port=22:proto=tcp:toport=22:toaddr=127.0.0.1 |
说明:阿里云 ECS 默认没有对端口进行特殊限制,因此可以不用设置安全组规则
阿里云 ECS/CentOS 7 启用 IPv6(6in4)
获取免费 IPv4 + IPv6 地址
到 https://www.tunnelbroker.net 注册即可,详情略。
只需要注意一点,要用阿里云 ECS
的「公网」 IPv4
才能换 IPv6
。换取成功 IPv6
同时还会有一个国外 IPv4
。
配置 CentOS 7
启用 IPv6
1 | vim /etc/modprobe.d/disable_ipv6.conf |
配置 IPv6 代理
下面命令根据上面网址创建 IPv6 成功后选择示例配置中的 Linux-route2 模版改动如下:
1 | modprobe ipv6 |
注意这里的 CentOS 7 内网 IPv4 并不是阿里云提供的弹性公网 IP,而是系统内的 IPv4 地址。用 ip -f inet addr
查看得到的那个,否则会出现 ping6
失败。(根阿里云 ECS 的网络类型、安全组什么的都无关)
NOTE: When behind a firewall appliance that passes protocol 41, use the IPv4 address you get from your appliance’s DHCP service instead of the IPv4 endpoint you provided to our broker.
监听 IPv6 地址
1 | # nginx |
配置 IPv6 DNS
不配置 IPv6 DNS
服务器,直接在 CentOS 7 使用 ping6
命令(Windows ping -6
)ping IPv6 地址是 ping 不通的。
1 | vi /etc/resolv.conf |
然后测试是否能够解析 IPv6,如果有正常输出则表示 DNS64 配置成功。
1 | ping6 -c 3 ipv6.google.com |
防火墙放行 41 端口
When using 6to4, you do not transmit IPv6 packets. Instead, special IPv4 packets are wrapped around IPv6 payloads. These packets have IPv4 protocol 41, as defined by RFC 2473.
1 | # firewall-cmd |
域名解析新增 AAAA 记录
到域名解析处分别添加主机为 www
和 @
,值为上面获取到的 IPv6
地址的 AAAA
记录。
测试网址 IPv6 连接情况
访问:Is Your Site IPv6 ready?,输入自己的网站域名即可检测。
FAQ
- 为什么手机测试依然不能连接 IPv6 地址?
请确保手机网络环境支持 IPv6 解析。
rsync
每小时同步数据库备份
1 | 0 */1 * * * /usr/bin/rsync -zrtopg --progress -e ssh user@example.com:/data/to/be/synced/ /path/to/store/backup |
防火墙
- 拒绝某个 IP 访问
1 | firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='118.89.37.80' reject" |