步骤如下:

  1. 阿里云购买服务器
    最低配置,30元/月即可。

  2. 为服务器安装git
    先更新apt再安装,否则可能会失败

用frp实现内网穿透非常简单,但是前提是你有一个公网IP的机器,没有的话你需要先买个vps,如果你已经有了,那么可以继续往下看了。

  1. 我们需要从frp官网下载frp软件 下载地址
    你需要根据你的vps系统来选择对应的版本,我的vps是ubuntu的,我选的是frp_0.27.0_linux_amd64.tar.gz
    那么直接ssh登录到vps上用命令:
1
wget https://github.com/fatedier/frp/releases/download/v0.27.0/frp_0.27.0_linux_amd64.tar.gz

下载到本地,然后解压:

1
2
3
4
mkdir /usr/local/frp/
mv frp_0.27.0_linux_amd64.tar.gz /usr/local/frp/
[root@izbp147qkvfxrb2efks5y9z ~]# cd /usr/local/frp/
[root@izbp147qkvfxrb2efks5y9z frp]# tar -zxvf frp_0.27.0_linux_amd64.tar.gz

进frp目录:

1
[root@izbp147qkvfxrb2efks5y9z ~]# cd /usr/local/frp/frp_0.27.0_linux_amd64/

这个目录下有个frps.ini文件,这是服务端的配置文件,内容如下:

1
2
[common]
bind_port = 7000

记住这个7000端口,文件内容我们不用修改。

vps上的frp是做服务端

因此,我们运行这个服务端

1
nohup ./frps -c ./frps.ini &
  1. 问题:

    运行./frps -c ./frps.ini时,-bash: ./frps: Permission denied

    解决:

    1
    chmod 777 ./frps -c ./frps.ini

    即可

    其中,frps.ini可为:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    [common]
    bind_port = 7000 #frps服务端口

    vhost_http_port = 8080 #http转发端口

    vhost_https_port = 8081 #https转发端口

    token=12345 #frp认证密钥

    #frpweb视图端口
    dashboard_addr = 0.0.0.0
    dashboard_port = 7500
    #frpweb视图账号密码
    dashboard_user = admin
    dashboard_pwd = admin
  2. FRP设置开机自启

开机自启脚本frpstart.sh:

1
2
3
4
5
#!/bin/bash
#chkconfig: 345 88 14
#description:FRP1 //此行必写,描述服务.

nohup /usr/local/frp/frp_0.27.0_linux_amd64/frps -c /usr/local/frp/frp_0.27.0_linux_amd64/frps.ini &

增加脚本可执行权限:

1
chmod 755 frpstart.sh

将脚本移动到/etc/rc.d/init.d目录下,

1
[root@izbp147qkvfxrb2efks5y9z frp_0.27.0_linux_amd64]#mv frpstart.sh /etc/rc.d/init.d/

添加开机自启脚本到自动启动项目中:

1
2
3
[root@izbp147qkvfxrb2efks5y9z frp_0.27.0_linux_amd64]# cd /etc/rc.d/init.d
[root@izbp147qkvfxrb2efks5y9z init.d]# chkconfig --add frpstart.sh
[root@izbp147qkvfxrb2efks5y9z init.d]# chkconfig frpstart.sh on
  1. 进入阿里云控制台,添加入站规则,否则客户端可能会连接失败
    (报错:[service.go:97] login to server failed: dial tcp 47.114.55.62:7000: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
    dial tcp 47.114.55.62:7000: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.)
1
2
3
4
5
6
7
8
9
10
firewall-cmd --zone=public --add-port=7000/tcp --permanent
firewall-cmd --zone=public --add-port=7500/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
firewall-cmd --zone=public --add-port=8081/tcp --permanent
firewall-cmd --zone=public --add-port=3389/tcp --permanent
#重启防火墙服务
systemctl restart firewalld.service
查看所有打开的端口:
firewall-cmd --zone=public --list-ports
也可以直接关闭防火墙服务,因为阿里云有实例安全组规则配置相当于防火墙,关闭后就不用两头配置了,节约时间。

在这里插入图片描述

  1. 从frp官网下载frp软件的windows版本
    这次我们要下载的是windows版本frp_0.27.0_windows_amd64.zip

    windows版本是做frp客户端

    解压出来的文件夹里有个frpc.ini文件,这是客户端的配置文件, 我们需要修改这个文件。

  2. 进入客户端(想要控制的内网windows),下载frpc配置frpc.ini:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    [common]
    server_addr = 公网IP
    server_port = 7000

    [RDP]
    type = tcp
    local_ip = 0.0.0.0
    local_port = 3389
    remote_port = 3389
  3. server_addr这里填入你的公网ip,下面的remote_port里填写一个你自己定的端口,这个端口不要和现有端口冲突即可,我这里写的是3389,后来我们就需要用这个端口来连接远程桌面
    配置好文件以后,用命令:

    1
    frpc.exe -c frpc.ini

    来启动客户端,此时会弹出来一个控制台窗口,不用关闭,最小化即可。

  4. 现在我们可以来远程连接了
    在另一个内网的机器上运行windows远程桌面:
    在运行中输入命令:

    1
    mstsc

    来打开远程桌面窗口,输入你的vps公网ip:你刚才设置的remote_port,比如:49.168.168.168:3389回车,然后等待连接建立吧,速度取决于你的VPS带宽。

  1. 被控端控制面板–>远程桌面–>允许远程桌面

img

  1. 各个平台下输入ip:3399远程控制和账户名、密码即可。
    控制端使用Micosoft remote desktop即可,在IOS, Android, MAC上均有app;

    若控制端为windows,则使用自带的远程桌面连接即可。

    ps: 比TeamViewer免费版快多了,而且没有设备数量限制