CentOS7的服务开启方法和防火墙管理方法

CentOS6升级到CentOS7后,最明细的改变就是服务的启动方式和防火墙管理方式改变了。

1. CentOS的服务开启方法

在CentOS6中的服务开启方式(以httpd服务为例):

# /etc/init.d/httpd start      启动服务
# /etc/init.d/httpd stop       停止服务
# /etc/init.d/httpd restart    重启服务

# chkconfig httpd on           设置服务开机启动
# chkconfig httpd off          设置服务开机不启动
# chkconfig --list httpd       检测服务是否开机启动

在CentOS7中的服务器开启方式(以httpd服务为例):

# systemctl start httpd.service      启动服务
# systemctl stop httpd.service       停止服务
# systemctl restart httpd.service    重启服务

# systemctl enable httpd.service     设置服务开机启动
# systemctl disable httpd.service    设置服务开机不启动
# systemctl is-enabled httpd.service 检测服务是否开机启动

我常用的服务有:

防火墙服务: iptables firewalld.service
ssh远程联机:sshd     sshd.service    22端口
Apache网站: httpd    httpd.service   80端口
Mysql数据库:mysqld   mariadb.service 3306端口
网络服务:   network  network.service

CentOS7的服务都采用systemctl命令来进行操作。仅有network服务依旧可以和CentOS6一样进行操作。

2. CentOS的防火墙端口开放方法

在CentOS6中仅需要修改/etc/sysconfig/iptables配置文件内容,即可开放相应的端口:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

在CentOS7中需要使用firewall-cmd命令对端口进行管理:

查看已经开放的端口
# firewall-cmd --list-ports
添加端口
# firewall-cmd --add-port=80/tcp --permanent
加入--permanent参数,使永久生效。
重启防火墙服务
# systemctl restart firewalld.service
重启后,再查看端口,则生效了。
设置服务开机启动
# systemctl enable firewalld.service

在CentOS7下安装chrome谷歌浏览器

CentOS7可以支持chrome浏览器的安装,而CentOS6不行。生信软件中HGAP4必须要使用chrome浏览器进行操作。

安装chrome浏览器方法:

首先添加google的yum源。
# echo '[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=0
#gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub' > /etc/yum.repos.d/google-chrome.repo

然后yum安装chrome软件
# yum install google-chrome-stable

安装完毕,即可在Applications – Internet – Google Chrome打开谷歌浏览器。

在CentOS7下使用VNC提供远程桌面服务

1. 为什么我要使用VNC

我使用VNC,是为了能远程连接到服务器的桌面。有些特殊的操作必须在服务器的桌面上完成。比如我需要通过百度网盘上传和下载高通量测序数据以及分析结果。这个时候,必须要安装windows虚拟机,而使用虚拟的windows系统必须要在服务器CentOS系统的桌面界面进行操作。

此外,我也使用了简单易用的teamviewer软件,但是该软件存在问题是,整个服务器系统仅能一个用户使用teamviewer软件。当我正在使用teamviewer的时候,某天,另外一个管理员人直接在服务器上登录了另外的账户桌面,我可能就无法再使用teamviewer连接服务器了。而VNC应该可以多用户同时远程访问各自的桌面。

以下讲解如何在家里通过一台公网服务器作为跳板,访问内网服务器的CentOS7系统桌面。

1. 在内网服务器安装VNC软件并进行设置

使用root用户联网安装软件
# yum install vnc vnc-server

开启5901、5902和5903端口。每增加一个用户使用VNC,则端口号加1,需要额外开放端口。
# firewall-cmd --zone=public --add-port=5901/tcp --permanent
# firewall-cmd --zone=public --add-port=5902/tcp --permanent
# firewall-cmd --zone=public --add-port=5903/tcp --permanent
重启防火墙,使开放的端口生效
# systemctl restart firewalld.service
查看被开启的端口
# firewall-cmd --list-ports

使用普通用户启动VNC软件
$ vncserver
Password:   设置使用VNC连接服务器的密码
Verify:     再次输入一遍密码
Would you like to enter a view-only password (y/n)? 选择n,以使连接到服务器后可以操作服务器
启动VNC后,在用户家目录下会生成 .vnc 配置文件夹,查看其中的log文件,得到启用的端口号,比如我启动了5901端口。

再使用普通用户在内网服务器上构建反向隧道
$ ssh -N -f -R 4499:localhost:5901 chenlianfu@115.29.105.12
我在aliyun上有一台服务器,以之为跳板,以上命令将内网服务器的5092端口映射到了跳板服务器的4499端口。

查看vncserver的服务情况
$ vncserver -list
关闭编号为:1的vncserver
$ vncserver -kill :1
修改vncserver的配置文件~/.vnc/config,尾部添加分辨率信息
geometry=1400x900
再次开启vncserver以获得更好的分辨率支持
$ vncserver

2. 在跳板服务器上的设置

在跳板服务器的防火墙设置中开放4499端口
# firewall-cmd --zone=public --add-port=4499/tcp --permanent
# systemctl restart firewalld.service

在跳板服务器的sshd配置中设置GatewayPorts参数值为yes
# perl -p -i -e 's/.*GatewayPorts.*/GatewayPorts yes/' /etc/ssh/sshd_config
# systemctl restart sshd.service

3. 在家里的笔记本电脑上连接

下载VNC viewer软件,安装完毕后,输入115.29.105.12:4499地址,再输入密码,即可连接到内网服务器的CentOS7桌面。默认画面质量可能较差,可以点击软件的设置图标,在Option选项卡的General栏下的Picture quality菜单中选择High,即可让画面显示清晰。