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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让内网的CENTOS服务器能用域名访问?相关的知识,希望对你有一定的参考价值。

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

以下文章转载自吴昊博客

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

frp流程图如下:

frp项目地址:https://github.com/fatedier/frp

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

frps中转服务器配置

1、下载frp

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

1 wget http://down.whsir.com/downloads/frp_0.27.0_linux_amd64.tar.gz

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 http://down.whsir.com/downloads/frp_0.27.0_linux_amd64.tar.gz

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,通过http://x.x.x.x:8081访问内网主机web,访问速度取决于带宽

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

参考技术A 这个实现比较简单吧,我之前公司内网,用花生壳做一个端口映射,生成一个域名,比如说我要对应OA系统,在花生壳客户端界面点击右下角加号新建映射,将企业相对应的内网IP地址以及端口号填写到相应位置,由于OA服务器所使用的端口为80,因此这里在内网端口处同样填写80端口,外网端口随机即可,随后进行保存。然后就可以在广域网下面进行远程访问了,还是比较方便的 参考技术B 在阿里上买个域名,用在lend软路由下一个阿里的dnns解析软件,解析到你用的公网ip上,哪怕改变也能自动更新最新的ip,(因为程序每隔5s或者30s就检测一下你的公网ip)但这样你必须还要在内网里做好端口转发,并且你公网访问本地网站只能域名加端口号,除非你到工信部去备案 参考技术C 使用阿里或dnspod或其他支持api的dns提供商。lede有对应的插件,会在ip改变时修改dns的解析。

然后lede做dmz或将需要的端口映射到服务器。外网直接访问域名+端口

如何修改HOSTS文件访问一个固定的站

公司网站托管到外网去了,内网机器不好上网,如何让内网机器访问原来的网站服务器直接访问到现在新的外网的网站,可以上网的机器是通过域名访问的,听别人说可以修改HOSTS文件实现,请高手帮忙

内网机器不能上网怎么改你也访问不了,除非你的服务器是双网卡,你在hosts文件里指定网址是内网IP
hosts文件在c:\windows\systen32\drivers\etc里面
后面加一行,格式是网址 IP
比如说www.xxx.com 218.123.123.123
参考技术A hosts文件在c:\windows\systen32\drivers\etc,找到后用记事本打开.
输入格式为:(我用例子来说明,其他的类似)
127.0.0.1 www.baidu.com
127.0.0.1 www.sina.com

上面的例子意思是,当在浏览器里输入www.baidu.com或则是www.sina.com 时,网页就自动转向loaclhost页面了

hosts 文件只能对所在的主机有用!如果你有10台电脑,那就要把编辑好的hosts文件复制到10台电脑上!!!

希望能帮助到你!!!

以上是关于如何让内网的CENTOS服务器能用域名访问?的主要内容,如果未能解决你的问题,请参考以下文章

phpmyadmin如何设置域名让外网访问

如何将内网的IP地址和互联网的域名绑定啊?

如何根据访问的域名来进行内网IP地址与端口的转发

如何从外网访问内网

配置内网DNS实现内部域名解析

如何修改HOSTS文件访问一个固定的站