HCRM博客

如何设置CentOS服务器以允许外网访问?

CentOS 是一种广泛使用的 Linux 发行版,常用于服务器环境,在 CentOS 7 中,配置外网访问涉及多个步骤和设置,包括网络配置、防火墙设置、端口转发等,以下是详细的内容:

1、配置静态 IP

如何设置CentOS服务器以允许外网访问?-图1
(图片来源网络,侵权删除)

修改网络配置文件/etc/sysconfig/networkscripts/ifcfg<interface>(例如ifcfgens33),将BOOTPROTO 设置为static,并添加相应的 IP 地址、子网掩码和网关信息。

示例如下:

```plaintext

TYPE=Ethernet

PROXY_METHOD=none

BROWSER_ONLY=no

如何设置CentOS服务器以允许外网访问?-图2
(图片来源网络,侵权删除)

BOOTPROTO=static

IPADDR=192.168.32.128

PREFIX=24

GATEWAY=192.168.32.2

DNS1=114.114.114.114

DEFROUTE=yes

如何设置CentOS服务器以允许外网访问?-图3
(图片来源网络,侵权删除)

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stableprivacy

NAME=ens33

UUID=1e3590f10d1345f2b21e5517815ed041

DEVICE=ens33

ONBOOT=yes

```

保存配置文件后,重启网络服务:

```bash

systemctl restart network

```

2、配置 DNS 解析

编辑/etc/resolv.conf 文件,添加常用的 DNS 服务器地址,例如谷歌的114.114.114.114 或阿里的223.5.5.5

```plaintext

nameserver 114.114.114.114

nameserver 223.5.5.5

```

保存文件并重启网络服务。

3、配置防火墙

如果系统默认使用firewalld,需要开放相应的端口,要开放 HTTP(80)和 HTTPS(443)端口,可以使用以下命令:

```bash

firewallcmd zone=public addport=80/tcp permanent

firewallcmd zone=public addport=443/tcp permanent

firewallcmd reload

```

检查端口是否成功开放:

```bash

firewallcmd queryport=80/tcp

firewallcmd queryport=443/tcp

```

4、配置端口转发

使用iptables 实现端口转发,假设要将外部 IP120.25.71.183 的 1522 端口流量转发到内网 IP10.1.1.24 的 80 端口:

```bash

iptables t nat A PREROUTING d 120.25.71.183 p tcp dport 1522 j DNAT todestination 10.1.1.24:80

iptables t nat A POSTROUTING d 10.1.1.24 p tcp dport 80 j SNAT to 10.1.1.23

```

保存规则并重启iptables 服务:

```bash

iptablessave > /etc/sysconfig/iptables

systemctl restart iptables

```

5、测试外网访问

使用curl 命令测试外网访问:

```bash

curl http://120.25.71.183:1522

```

如果能够正常访问,说明配置成功。

相关问答 FAQs

Q1: 如何在 CentOS 7 上配置静态 IP?

A1: 在 CentOS 7 上配置静态 IP,需要修改网络接口配置文件/etc/sysconfig/networkscripts/ifcfg<interface>,将BOOTPROTO 设置为static,并添加相应的 IP 地址、子网掩码和网关信息,保存后重启网络服务即可。

Q2: 如何在 CentOS 7 上开放特定端口?

A2: 在 CentOS 7 上开放特定端口,可以使用firewallcmd 命令,要开放 HTTP(80)和 HTTPS(443)端口,可以执行以下命令:

```bash

firewallcmd zone=public addport=80/tcp permanent

firewallcmd zone=public addport=443/tcp permanent

firewallcmd reload

```

然后使用firewallcmd queryport=80/tcpfirewallcmd queryport=443/tcp 命令检查端口是否成功开放。

分享:
扫描分享到社交APP
上一篇
下一篇