外网访问centos?centos ip

大家好,今天小编来为大家解答以下的问题,关于外网访问centos,centos ip这个很多人还不知道,现在让我们一起来看看吧!

如何让内网的CENTOS服务器能用域名访问

利用frp穿透技术,来实现你要的功能,不需要公网IP。毕竟现在公网IP运营商有很多限制:

以下文章转载自吴昊博客

frp内网穿透是通过一个带有公网IP的服务器进行中转,对被控主机实现反向代理,用户通过访问frps(中转服务器)来实现对frpc(被控主机)的远程访问。

frp流程图如下:

frp项目地址:

本实验环境以阿里云服务器作为中转机,中转服务器使用Centos7.6,被控主机使用Centos7.6,用户使用Windows10由于网络原因,文中链接已经替换成了本地链接,如不放心,请自行去GitHub下载

frps中转服务器配置

1、下载frp

在一台有公网IP的主机上配置frps,我这里以阿里云Centos7.x主机为例

1 wget

2 tar xf frp_0.27.0_linux_amd64.tar.gz

3 mv frp_0.27.0_linux_amd64/usr/local

4 cd/usr/local/frp_0.27.0_linux_amd64

5 rm-f frpc*

2、配置frps

这里使用最基础的配置,bind_port表示frp面板的监控端口,dashboard_user表示面板的登陆帐号,dashboard_pwd表示面板的登陆密码,其它不动。

1 vi

frps.ini

配置文件说明:

1 [common]

2 bind_port= 7000

3

4 dashboard_user= whsir

5 dashboard_pwd= blog.whsir.com

6 dashboard_port= 8000

3、启动frps

配置启动服务

1 vi/etc/systemd/system/frps.service

1 [Unit]

2 Description=frps daemon

3 After=syslog.target network.target

4 Wants=network.target

5

6 [Service]

7 Type=simple

8 ExecStart=/usr/local/frp_0.27.0_linux_amd64/frps-c/usr/local/frp_0.27.0_linux_amd64/frps.ini

9

10 [Install]

11 WantedBy=multi-user.target

技行以下两个命令

1 systemctl enable frps

2 systemctl start frps

4、访问监控平台

http://公网IP:8000

账号whsir

密码blog.whsir.com

如果访问不了,请使用ss-lnt命令检查端口是否启动,是否因为防火墙原因拦截。

至此frps中转服务器配置完成

frpc内网主机配置

1、内网主机下载frp

1 wget

2 tar xf frp_0.27.0_linux_amd64.tar.gz

3 mv frp_0.27.0_linux_amd64/usr/local

4 cd/usr/local/frp_0.27.0_linux_amd64

5 rm-f frps*

2、配置frpc

其中x.x.x.x表示frps中转服务器IP地址

ssh字段:local_port= 22示被控(内网)主机的ssh端口,remote_port= 6000表示ssh中转端口

web字段:local_port= 80表示被控(内网)主机的web端口,remote_port= 8081表示web中转端口

1 vi frpc.ini

1 [common]

2 server_addr= x.x.x.x

3 server_port= 7000

4

5 [ssh]

6 type= tcp

7 local_ip= 127.0.0.1

8 local_port= 22

9 remote_port= 6000

10

11 [web]

12 type= tcp

13 local_ip= 127.0.0.1

14 local_port= 80

15 remote_port= 8081

3、启动frpc

配置启动服务

1 vi/etc/systemd/system/frpc.service

1 [Unit]

2 Description=frpc daemon

3 After=syslog.target network.target

4 Wants=network.target

5

6 [Service]

7 Type=simple

8 ExecStart=/usr/local/frp_0.27.0_linux_amd64/frpc-c/usr/local/frp_0.27.0_linux_amd64/frpc.ini

9

10 [Install]

11 WantedBy=multi-user.target

执行如下命令

1 systemctl enable frpc

2 systemctl start frpc

至此frpc被控主机配置完成

此时可通过x.x.x.x:6000连接内网ssh,通过访问内网主机web,访问速度取决于带宽

这时候,内网主机就映射到外网去了,然后,用域名指定你的frp主机ip就可以了。这样就可以实现你的功能了。

CentOS网络配置后无法访问外网的解决方法

关于CentOS网络的具体配置项,可以参考Mitchell博客之前的那篇文章。

现象:

ping内网正常

ping外网IP,域名均无法正常,返回错误:connect: Network is unreachable

后面在无意中看到Linux网络配置有添加网关的命令:

复制代码代码如下:

route add default gw 192.168.128.2 dev eth0

按上面操作,添加了默认的网关之后。再次访问外网一切正常。

有这个现象来看,应该是配置文件中没有配置网关,但是经过确认/etc/sysconfig/network中是配置了GATEWAY地址的,而且GATEWAY的地址也是正确的,在多次重启network之后,只要不手动添加网关,就不能访问外网。

多次仔细确认各个网络配置文件之后,发现在网卡配置文件中(ifcfg-eth0)有一个NETWORK配置项,对于这个配置项,本身作用不是很清楚,因此到官网查看了一下说明:

复制代码代码如下:

NETWORK=

where is the network address. This directive is deprecated, as the value is calculated automatically with ifcalc.

这节奏是告诉我们这个参数不要设置嘛(deprecate),这个值将会由ifcalc自动计算。既然不用设置,自然去掉。

去掉之后,重启network服务之后,外网竟然神奇的能够访问了。使用route查看路由表,发现能够自动添加default这条信息了,原来可是一直没有的:

复制代码代码如下:

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

192.168.128.0* 255.255.255.0 U 0 0 0 eth0

link-local* 255.255.0.0 U 1002 0 0 eth0

default 192.168.128.2 0.0.0.0 UG 0 0 0 eth0

看来问题正是这个NETWORK参数设置引起的。至于具体为什么会这样,这个设置会产生什么样的影响还不是很清楚。

TIPs:为了简单,你也可以将IPADDR,GATEWAY等设置到ifcfg-eth*的文件中,不用将GATEWAY单独设置在network中。

怎么阻止centos7主动访问外网

1. IP封禁(这个是我们平时用得最多的)

# firewall-cmd--permanent--add-rich-rule="rule family='ipv4' source address='222.222.222.222' reject"单个IP

# firewall-cmd--permanent--add-rich-rule="rule family='ipv4' source address='222.222.222.0/24' reject" IP段

# firewall-cmd--permanent--add-rich-rule="rule family=ipv4 source address=192.168.1.2 port port=80 protocol=tcp accept"单个IP的某个端口

这个是我们用得最多的。封一个IP,和一个端口 reject拒绝 accept允许

当然,我们仍然可以通过 ipset来封禁 ip

# firewall-cmd--permanent--zone=public--new-ipset=blacklist--type=hash:ip

# firewall-cmd--permanent--zone=public--ipset=blacklist--add-entry=222.222.222.222

封禁网段

# firewall-cmd--permanent--zone=public--new-ipset=blacklist--type=hash:net

# firewall-cmd--permanent--zone=public--ipset=blacklist--add-entry=222.222.222.0/24

倒入 ipset规则

# firewall-cmd--permanent--zone=public--new-ipset-from-file=/path/blacklist.xml

然后封禁 blacklist

# firewall-cmd--permanent--zone=public--add-rich-rule='rule source ipset=blacklist drop'

2、IP封禁和端口

# firewall-cmd--permanent--add-rich-rule="rule family=ipv4 source address=192.168.1.2 port port=80 protocol=tcp accept"

只对192.168.1.2这个IP只能允许80端口访问(拒绝访问只需把 accept换成 reject、删除该规则把–add-rich-rule改成–remove-rich-rule即可)

# firewall-cmd--permanent--add-rich-rule="rule family=ipv4 source address=192.168.1.2/24 port port=80 protocol=tcp accept"

只对192.168.1.2这个IP段只能允许80端口访问(拒绝访问只需把 accept换成 reject、删除该规则把–add-rich-rule改成–remove-rich-rule即可)

3、双网卡内网网卡不受防火墙限制

# firewall-cmd--permanent--zone=public--add-interface=eth1

公网网卡–zone=public默认区域

# firewall-cmd--permanent--zone=trusted--add-interface=eth2

内网网卡–zone=trusted是受信任区域可接受所有的网络连接

重新载入以生效

# firewall-cmd--reload

阅读剩余
THE END