阿里云frp内网穿透配置

1,249 阅读3分钟

阿里云frp内网穿透配置

内网穿透简介:通过拥有公网IP的服务器(serverA)作为代理,达到让外网PC(即自己的开发电脑)拥有访问内网服务器(ServerB)的目的;

image.png

目前我们已经拥有了两台设备:PCServerB,我们还需要准备ServerA,这里我们选用的是阿里云服务器。

一、阿里云服务器相关

1.服务器的购买

​ 如果是学生的话,可以去[阿里云官网](云服务器全面降价 (aliyun.com))进行学生认证,可以购买一个轻量级服务器,约100多块左右一年。

2.服务器实例的创建及基本配置

实例的创建很简单,这里需要注意的一点是操作系统的选择,该教程选用的是 CentOS7.9 的操作系统,大家不要选错了;

2.1 基本配置

​ 实例创建好后,可以看到如下界面:

image.png

现在需要做两件事情:

  • (1)重置root密码;

image.png

  • (2)开通ssh远程访问;

    • 进入后台:

      • 切换为root用户并登录

        $su -

      • 开启外部root用户ssh访问权限:

        (1)#vim /etc/ssh/sshd_config

      ​ (2)将PasswordAuthentication no修改为PasswordAuthentication yes

    ​ (3)重启sshd服务:#systemctl restart sshd

二、frp内网穿透工具的配置

1.软件获取

  • 进入frp项目网站后找到Releases:

image.png

然后下载一个软件包(linux系统64位即可):

image.png

2. frp的安装与配置

(1)ServerA服务端的配置

<1> frps服务配置
  • 将‘frp_0.49.0_linux_amd64.tar.gz’上传至ServerA

  • 解压:tar -zxvf frp_0.49.0_linux_amd64.tar.gz’

  • 进入frp文件夹:cd frp_0.49.0_linux_amd64

  • 将文件frps.ini的内容修改为:

    [common]
    bind_port = 7000
    
  • 启动frps服务:nohup ./frps -c frps.ini >> frps.log &

    frps.log日志中有显示成功即可

<2> 对外开启端口
  • 操作系统对外开放7000端口:

    firewall-cmd --permanent --zone=public --add-port=7000/tcp

  • 重启防火墙firewall

    systemctl reload firewalld

  • 查看7000端口是否开启:

    netstat -tuln

<3> 阿里云中开放7000端口
  • 进入到安全组

image.png

  • 进入【管理规则】

image.png

  • 添加7000端口的配置

image.png

  • 回到【实例】,将该实例添加至该安全组

    (1) image.png

    (2)

image.png

(2)ServerB客户端的配置

<1> 配置
  • 同理,将‘frp_0.49.0_linux_amd64.tar.gz’上传至ServerB并解压

  • 进入frp文件夹:cd frp_0.49.0_linux_amd64

  • 将文件frpc.ini的内容修改为:

    [common]
    server_addr = [ServerA的公网IP]
    server_port = 7000
    
    [sshself]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22 
    remote_port = 6000 # 需要映射的端口
    
  • 启动客户端的frpc服务:

    nohup ./frpc -c frpc.ini >> frpc.log &

  • 日志中有:信息说明启动成功

image.png

<2> 开启映射端口6000的访问权限
  • 进入到ServerA,输入:firewall-cmd --permanent --zone=public --add-port=6000/tcp

  • 重启防火墙firewall

    systemctl reload firewalld

  • 在阿里云【安全组】中添加6000端口的配置

3 验证

本机PC打开远程连接工具(如xshell)

输入:ssh [ServerB的用户名]@ServerA IP:6000 如果连接成功,则说明配置成功了!

PS:

重点:端口开放权限(ServerA端口配置和阿里云的安全组策略