teamviewer替代方案,frp+远程桌面

teamviewer主要做了2件事
1. 内网透传
2. 桌面控制

如果想替代它就必须有工具能代替这个2个,我们可以用frp技术做内网透传,用windows自带的远程桌面做桌面控制。换句话说就是给远程桌面做个端口映射或者是内网透传,端口映射需要有网管的支持才能给开对外端口,但是内网透传则不需要。只需要有一个内网透传服务端,然后再windows上起相应的客户端程序,然后再把本地的3389端口透传给服务器端的任意端口(比如23389)。然后可以用服务器的地址加这个23389远程桌面连接了。

frp内网透传http服务

vi frps.ini

[common]
bind_port = 7000
vhost_http_port = 80
dashboard_port = 7500
dashboard_user = user
dashboard_pwd = password
subdomain_host = nat.fdxun.com
token = "xxxxxxxxx"

vi frpc.ini

[common]
server_addr = nat.fdxun.com
server_port = 7000

[web]
type = http
local_port = 8080
use_encryption = true
use_compression =true
token = "xxxxxxxxx"
subdomain = test

注意:
1. http透传时只能是域名形式,不能是ip地址形式
2. 域名支持3级,即xxx.nat.fdxun.com

frp后台运行

vi /etc/systemd/system/frps.service
新建此文件,并写入以下内容

[Unit]
Description=frps daemon
After=syslog.target  network.target
Wants=network.target

[Service]
Type=simple
ExecStart=/usr/sbin/frp/frps -c /etc/frp/frps.ini
Restart= always
RestartSec=1min
ExecStop=/usr/bin/killall frps


[Install]
WantedBy=multi-user.target

启动并设为开机自启。
systemctl start frps
systemctl enable frps

natapp后台运行查看随机域名

  1. 注册的service的指令后面是可以加参数的如下
    ./natapp -log=-log=stdout
  2. 配置文件config.ini的log参数和logevel参数调整一下
    config.ini
#将本文件放置于natapp同级目录 程序将读取 [default] 段
#在命令行参数模式如 natapp -authtoken=xxx 等相同参数将会覆盖掉此配置
#命令行参数 -config= 可以指定任意config.ini文件
[default]
authtoken=xxxxxxxx                      #对应一条隧道的authtoken
clienttoken=                    #对应客户端的clienttoken,将会忽略authtoken,若无请留空,
log=stdout                        #log 日志文件,可指定本地文件, none=不做记录,stdout=直接屏幕输出 ,默认为none
loglevel=DEBUG                  #日志等级 DEBUG, INFO, WARNING, ERROR 默认为 DEBUG
http_proxy=                  #代理设置 如 http://10.123.10.10:3128 非代理上网用户请务必留空
  1. systemctl restart后再status就能从log里看到随机域名是什么了