frp内网穿透配置

frp内网穿透配置

学校放寒假,想着回家以后能够远程访问实验室的服务器跑实验,正巧以前跟同学闲聊的时候了解到frp可以实现内网穿透,因此花了一上午的时间来安装配置frp,实现通过外网IP和SSH登录内网服务器的目标。本文记录配置frp的过程,实验环境如下:

  • 一台具有公网IP的Linux服务器;
  • 一台内网服务器,操作系统是Ubuntu 20;
  • 一台测试用的PC。

配置frp服务端

  1. 下载frp安装包并进行解压

    首先访问frp项目的Releases页面,下载合适的安装包。frp安装包是通过压缩包的形式提供的,需要进行解压缩,解压后的安装目录的内容如下:

    tar -xvf frp_0.38.0_linux_amd64.tar.gz
    tree frp_0.38.0_linux_amd64
    
    frp_0.38.0_linux_amd64
    ├── frpc
    ├── frpc_full.ini
    ├── frpc.ini
    ├── frps
    ├── frps_full.ini
    ├── frps.ini
    ├── LICENSE
    └── systemd
    	├── frpc.service
    	├── frpc@.service
    	├── frps.service
    	└── frps@.service
    
  2. 拷贝可执行文件frps到目录/usr/bin/

    为了简化后续的配置和使用,把安装目录下的二进制可执行文件frps拷贝到目录/usr/bin/:

    cd frp_0.38.0_linux_amd64
    cp ./frps /usr/bin/
    
  3. 拷贝后缀名为*.ini配置文件到目录/etc/frp

    mkdir /etc/frp
    cp *.ini /etc/frp/
    
  4. 修改配置文件frps.ini,指定服务器用于监听客服端连接的端口

    vi /etc/frp/frps.ini
    
    [common]
    bind_port = 7000
    token = b3c74c2346c34754856ade61716339a3wuql
    
  5. 设置防火墙,开放端口

    本文实验采用的具有公网IP的服务器是阿里云轻量应用服务器,设置防火墙的步骤如下:

    • 访问轻量应用服务器管理控制台,点击侧边栏的“安全/防火墙”;
    • 点击添加规则,填写开放端口(7000和6000)和备注,点击确认按钮;
    • 通过命令行工具firewall-cmd开放端口:
      firewall-cmd --zone=public --add-port=7000/tcp --permanent
      firewall-cmd --zone=public --add-port=6000/tcp --permanent
      firewall-cmd --reload
      
阿里云服务器设置防火墙、开放端口
  1. 启动frp服务端:frps -c /etc/frp/frps.ini

配置frp客户端

  1. 下载frp安装包并进行解压;
  2. 拷贝frpc到目录/usr/bin/:cp ./frpc /usr/bin/;
  3. 拷贝配置文件到目录/etc/frp:mkdir /etc/frp && cp *.ini /etc/frp/;
  4. 修改配置文件frpc.ini,把内网服务(这里具体指SSH)暴露到服务器端口6000上:
    vi /etc/frp/frpc.ini
    
    [common]
    server_addr = <公网IP>
    server_port = 7000
    token = b3c74c2346c34754856ade61716339a3wuql
    
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 6000
    
  5. 启动frp客户端:frpc -c /etc/frp/frpc.ini;
  6. 通过另外一台设备访问内网服务(即通过SSH登录内网服务器):ssh -p 6000 <内网服务器上的用户>@<公网IP>

通过systemd配置后台运行和开机自启动

  • frp服务端

    1. 拷贝frp安装目录下的文件systemd/frps.service到目录/usr/lib/systemd/system/;
      cd systemd
      cp frps.service /usr/lib/systemd/system/
      
    2. 设置frps开机自启动:systemctl enable frps;
    3. 后台启动frps:systemctl start frps
  • frp客户端

    1. 拷贝frp安装目录下的文件systemd/frpc.service到目录/usr/lib/systemd/system/;
    2. 设置frps开机自启动:systemctl enable frpc;
    3. 后台启动frps:systemctl start frpc

参考材料

posted @ 2022-01-23 16:35  Wan-deuk-i  阅读(311)  评论(0编辑  收藏  举报