免费内网穿透工具frp的使用

  • 前言
  • 我的场景
  • frp下载与安装
  • frp的配置
  • 简单使用
  • 注意事项


前言

而由于实验室电脑上网没有公网IP,所以我在想怎么才能在宿舍远程连接我实验室的电脑,目前我知道的方案就是做内网穿透了,而内网穿透实际上是主机A与具有公网IP的服务器S保持连接,然后主机B访问S,S把主机B的请求转交给A,A通过S响应B的请求。其实就是得有一个主机B可以主动发起连接的中转站,中转站可以是服务器也可以是具有公网ip的个人PC。网上的花生壳之类的内网穿透软件就是商家为我们提供了这个中转站

我的场景

主机A为实验室的电脑装的ubuntu18.04,主机B为我的笔记本装的win10,服务器S是一台阿里云ECS服务器(其实是试用的搞来玩玩)。

frp下载与安装

链接: https://github.com/fatedier/frp/releases.

  • 根据环境选择操作系统和芯片架构对应版本
    我选择的是frp_0.37.1_linux_386.tar.gz版本下载并解压

直接下载

wget github.com/fatedier/frp/releases/frp_0.37.1_linux_386.tar.gz

也可以通过git clone或者其他方式。

解压

tar -zxvf frp_0.37.1_linux_386.tar.gz

解压后服务端可以将frpc开头的东西删掉那是客户端要用的,同理客户端也可以将frps开头的东西删掉

frp的配置

  • 打开服务端的配置文件frps.ini,按一下内容进行配置
bind_addr = 0.0.0.0
bind_port = 7000
dashboard_port = 7886
dashboard_user = frp
dashboard_pwd = 12345678

bind_addr配置为0.0.0.0是指本机IP地址
bind_port 配置服务器S与需要内网穿透的主机A保持连接用的端口号
dashboard_port 是用来访问frp管理页面额端口号
dashboard_user是frp管理页面的用户名
dashboard_pwd是frp管理页面的密码

  • 打开客户端的配置文件frpc.ini,按一下内容进行配置
[common]
server_addr = 服务器ip
server_port = 7000 # 与frps.ini的bind_port一致

# 配置ssh服务
[ssh]
type = tcp #协议类型
local_ip = 127.0.0.1
local_port = 22 #主机A需要被代理的端口号,ssh默认为22号
remote_port = 6000  # 这个自定义,之后再ssh连接的时候要用

简单使用

前台模式开启服务端

./frps -c frps.ini

后台模式

nohup ./frps -c frps.ini >/dev/null 2>&1 &

开启客户端

./frpc -c frpc.ini

后台模式

nohup ./frpc -c frpc.ini >/dev/null 2>&1 &

访问管理页面
浏览器输入 服务器ip:port port为你在frps中配置的dashboard_port即可访问,输入账户密码进入管理可查看代理情况。

国内免费容器 国内免费frp_tcp/ip

注意事项

需要防火墙开放对应端口或者直接关闭防火墙
Ubuntu关闭防火墙命令是

sudo ufw disable

如果服务器租用的是云服务器,由于云服务提供厂商默认未开放端口需要到云服务器管理界面的安全组里面添加对应端口入口。