frp内网穿透

放假回家需要远程实验室的电脑,虽然可以通过Windows自带的远程功能加VPN访问,但有时电脑会重启,开机后电脑IP地址也就变了。为了确保万无一失,设置了内网穿透,实现通过公网IP访问内网机器的功能。

1. frp介绍

frp是一个开源的内网穿透工具,支持TCP、UDP、HTTP、HTTPS等协议,可以将内网的机器安全、便捷的通过具有公网IP的机器暴露到公网中。(太过抽象,可以跳过这一部分,直接进入准备工作,配置好之后再回来看就会明白了)

  • frp项目地址:frp

  • frp工作原理

    frp需要一台具有公网IP地址的机器作为服务端,内网中的机器作为客户端。frp包括两部分,frps以及frpc,服务端运行frps,客户端运行frpc,其工作原理如下:

    • 服务端运行frps,对设置的主端口进行监听,等待客户端的连接
    • 客户端运行frpc,连接到服务端,同时告诉服务端要监听的端口转发类型
    • 服务端开启新的进程监听客户端指定的端口
    • 公网用户连接到服务端的端口(该端口是第二步中客户端指定的端口),服务端将数据转发到客户端

2. 准备工作

这里我的服务端是一台Linux服务器,客户端是一台Windows电脑。

  1. 下载frp:frp下载地址

    需要根据对应的操作系统和CPU架构,分别在服务端和客户端下载对应的frp。

  2. 解压frp

    下载解压之后,服务器端保留frps、frps.ini、LICENSE这三个文件,电脑保留frpc、frpc.ini、LICENSE这三个文件即可。

  3. Linux以及Windows需设置防火墙开放对应的端口,根据下面的配置,Linux需开启7000(该端口用于服务端与客户端之间建立联系)以及9000端口(该端口用于公网用户连接内网Windows),Windows需开启3389端口(该端口用于远程桌面)。

3. 服务器端配置

3.1 frps配置

打开 frps.ini 文件,输入以下内容:

[common]
bind_port = 7000 # 主端口,可设置为其他端口,客户端将通过该端口与服务端建立通信
token = thisispassword # 用于身份验证

3.2 启动frps

在解压后的文件夹内输入以下内容:

./frps -c ./frps.ini

3.3 设置开机自启

经过以上设置,frps已经在服务器上启动并监听7000端口了,但服务器重启后需要手动启动frps,因此这里再设置一下frps开机自启。

  1. 在**/lib/systemd/system** 下面新建一个文件frps.service:

    vim /lib/systemd/system/frps.service
    
  2. 写入以下内容

    [Unit]
    Description=frps
    
    [Service]
    Type=simple
    ExecStart=frps所在文件夹/frps -c frps所在文件夹/frps.ini
    
    [Install]
    WantedBy=multi-user.target
    
  3. 启动

    systemctl start frps
    
  4. 设置开机自启

    systemctl enable frps
    

4. 电脑端

4.1 frpc配置

打开frpc.ini文件,输入以下内容:

[common]
server_addr = 服务器的公网IP地址
server_port = 7000 # frps.ini里面设置的主端口
token = thisispassword # 与frps.ini里面设置的保持一致

[RDP]
type = tcp
local_ip = 127.0.0.1
local_port = 3389 # 本地需要映射到服务器上的端口
remote_port = 9000 # 映射到服务器上的端口

4.2 启动frpc

frpc.ini 所在的文件夹进入命令行窗口,输入:

./frpc -c ./frpc.ini

启动成功后:

  1. 服务器端的7000端口将监听到有个frpc客户端想要与服务器建立连接
  2. 服务器端根据客户端的设置开始监听9000端口
  3. 若此时有台电脑访问服务器的9000端口,则根据frp的映射,将实际访问客户端的3389端口也就是访问Windows电脑的远程

4.3 设置开机自启桌面

同样,为了避免手动启动的麻烦,frpc也需要设置开机自启。借助winsw设置Windows下frpc的开机自启:

  1. 根据需要下载winsw-*.exe

  2. 将下载的 winsw-*.exe 放到 frpc 所在的文件夹

  3. 新建一个名为 winsw.xml 的文件,写入以下内容:

    <service>
        <id>frp</id>
        <name>frp</name>
        <description>frp</description>
        <executable>frpc</executable>
        <arguments>-c frpc.ini</arguments>
        <logmode>reset</logmode>
    </service>
    
  4. 管理员权限打开命令行窗口,进入到 frpc 所在的文件夹,输入以下内容

    winsw install
    

5. 其他

frp还提供了后台管理等功能,具体可参考frp文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值