公司有个服务器想要让别人去访问,但是外网服务器配置比较低,就让我想办法。
想起来以前用过一个外网穿透的工具frp现在重新回顾学习一下
1.什么是内外网穿透
内外网穿透,或称内网穿透、NAT穿透,是一种主动的操作,它允许处于内网中的设备与外网建立连接。
我们平常访问的服务器需要一个对外的公有地址,但是公司没钱那我们只能考虑让客户端访问外网服务器,通过端口映射转到内网中。
2.怎么样让内网端口映射到外网
市面上使用的比较多的就是花生壳但是我们有外网服务器,并且花生壳的域名太乱,如果没有外网服务器可以考虑使用下花生壳。
我们先从github上下载一个frp文件,根据自己系统下载,我内网是Windows,外网是CentOs,所以需要下载两个版本的文件。
Linux也可以通过命令,例如CentOS
wget https://github.com/fatedier/frp/releases/download/v0.46.1/frp_0.46.1_linux_amd64.tar.gz
3.安装服务端(CentOS)
- 创建frp安装目录(分别在有公网IP Centos和无公网IP Centos创建)
mkdir -p /usr/local/frp - 先进入安装目录
cd /usr/local/frp - 下载frp压缩包
wget https://github.com/fatedier/frp/releases/download/v0.46.1/frp_0.46.1_linux_amd64.tar.gz - 解压frp
tar -zxvf frp_0.46.1_linux_amd64.tar.gz - 公网服务器上保留只需保留frps相关文件
rm -rf frpc* - 配置frps.ini
vim frps.ini
#服务端通讯端口
bind_port = 7000
# 服务端认证的token,最好别用常用密码
token = 123123
# 服务端管理界面端口
dashboard_port = 7500
# 服务端管理界面用户名
dashboard_user = admin
# 服务端管理界面密码
dashboard_pwd = admin
enable_prometheus = true
- 配置service启动
vim /lib/systemd/system/frps.service
[Unit]
Description=Frp Server Service
After=network.target
[Service]
Type=simple
# 参考自己文件的frps和frps.ini位置
ExecStart=/usr/local/frp/frp_0.46.1_linux_amd64/frps -c /usr/local/frp/frp_0.46.1_linux_amd64/frps.ini
[Install]
WantedBy=multi-user.target
- 启动frps服务
systemctl start frps.service - 设置为开机自启
systemctl enable frps.service - 查看服务状态
systemctl status frps.service
CentOS开了防火墙,需要放行相关端口
firewall-cmd --zone=public --add-port=7000/tcp --add-port=7500/tcp --add-port=7001/tcp --permanent
注意刷新防火墙规则
firewall-cmd --reload
记得在公网服务器上放行端口,我在测试的时候就因为他发现无法访问。
3.安装客户端
- 把github下来的文件打开
frpc.ini
编辑文件为
[common]
# 公网IP地址
server_addr = 12.34.56.78
# 公网端口,需与frps.ini对应
server_port = 7000
# 通信时携带的口令
token = 123123
# 本地http 80端口 服务和公网服务器7001端口做映射
# 需要在外网防火墙和服务器控制台开放你要映射的端口
[端口1]
type = tcp
local_ip = 127.0.0.1
local_port = 80
# 公网服务器端口,你要通过外网访问的端口
remote_port = 7001
- 启动frpc 进入到frp文件夹内打开终端
frpc -c frpc.ini
运行成功后 就可以通过外网访问到内网的端口了
总结
在服务器配置不够或者想通过公司电脑访问家里电脑时,我们就可以使用frp来进行配置了,关于他还有更多的操作,就需要自行百度了。