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

修改网络配置文件/etc/sysconfig/networkscripts/ifcfg<interface>(例如ifcfgens33),将BOOTPROTO 设置为static,并添加相应的 IP 地址、子网掩码和网关信息。
示例如下:
```plaintext
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no

BOOTPROTO=static
IPADDR=192.168.32.128
PREFIX=24
GATEWAY=192.168.32.2
DNS1=114.114.114.114
DEFROUTE=yes

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/tcp 和firewallcmd queryport=443/tcp 命令检查端口是否成功开放。
