关于内外网穿透(frp)

212 阅读3分钟

公司有个服务器想要让别人去访问,但是外网服务器配置比较低,就让我想办法。

想起来以前用过一个外网穿透的工具frp现在重新回顾学习一下

1.什么是内外网穿透

内外网穿透,或称内网穿透、NAT穿透,是一种主动的操作,它允许处于内网中的设备与外网建立连接。

image.png 我们平常访问的服务器需要一个对外的公有地址,但是公司没钱那我们只能考虑让客户端访问外网服务器,通过端口映射转到内网中。

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

运行成功后 就可以通过外网访问到内网的端口了

image.png

总结

在服务器配置不够或者想通过公司电脑访问家里电脑时,我们就可以使用frp来进行配置了,关于他还有更多的操作,就需要自行百度了。