通过观察 man sshd,我们可以查询到 sshd 的配置文件位于 /etc/ssh/sshd_config 这个文件内!再 man sshd_config 也能知道原来端口是使用 Port 来规范的! 因此,我想要创建第二个配置文件,文件名假设为 /etc/ssh/sshd2_config 这样!
[root@study ~]# cd /etc/ssh[root@study ssh]# cp sshd_config sshd2_config[root@study ssh]# vim sshd2_configPort222# 随意找个地方加上这个设置值!你可以在文件的最下方加入这行也 OK 喔!
接下来开始修改启动脚本服务档!
[root@study ~]# cd /etc/systemd/system[root@study system]# cp /usr/lib/systemd/system/sshd.service sshd2.service[root@study system]# vim sshd2.service[Unit]Description=OpenSSHserverdaemon2After=network.targetsshd-keygen.serviceWants=sshd-keygen.service[Service]EnvironmentFile=/etc/sysconfig/sshdExecStart=/usr/sbin/sshd-f/etc/ssh/sshd2_config-D $OPTIONSExecReload=/bin/kill-HUP $MAINPIDKillMode=processRestart=on-failureRestartSec=42s[Install]WantedBy=multi-user.target[root@study system]# systemctl daemon-reload[root@study system]# systemctl enable sshd2[root@study system]# systemctl start sshd2[root@study system]# tail -n 20 /var/log/messages# semanage port -a -t PORT_TYPE -p tcp 222wherePORT_TYPEisoneofthefollowing:ssh_port_t,vnc_port_t,xserver_port_t.# 认真的看!你会看到上面这两句!也就是 SELinux 的端口问题!请解决![root@study system]# semanage port -a -t ssh_port_t -p tcp 222[root@study system]# systemctl start sshd2[root@study system]# netstat -tlnp | grep sshtcp000.0.0.0:220.0.0.0:*LISTEN1300/sshdtcp000.0.0.0:2220.0.0.0:*LISTEN15275/sshdtcp600:::22:::*LISTEN1300/sshdtcp600:::222:::*LISTEN15275/sshd
简答题部分:
使用 netstat -tul 与 netstat -tunl 有什么差异?为何会这样?使用 n 时, netstat 就不会使用主机名称与服务名称 (hostname & servicename) 来显示, 取而代之的则是以 IP 及 port number 来显示的。IP 的分析与 /etc/hosts 及 /etc/resolv.conf 有关, 这个在未来服务器篇才会提到。至于 port number 则与 /etc/services 有关,请自行参考喔! ^^
你能否找出来,启动 port 3306 这个端口的服务为何?通过搜寻 /etc/services 内容,得到 port 3306 为 mysql 所启动的端口喔!查询 google, 可得到 mysql 为一种网络数据库系统软件。