2019年8月

在win10的cmd命令下,我们可以通过wsl命令启动子系统或分发一些命令,所以我们只需要在Windows启动的时候对子系统分发命令即可达到开机自启的目的。

配置自启服务文件

  • 创建并编辑文件/etc/init.wsl
vim /etc/init.wsl

Linux下我们的自启服务通常在/etc/init.d/目录下,假设现在该目录下我们自建了一个sh文件ssh.sh文件,那么我们的init.wsl的内容就可以为:

#! /bin/sh
/etc/init.d/ssh.sh $1
  • 配置权限
    chmod 755 /etc/init.wsl
  • 测试
    sudo /etc/init.wsl [start|stop|restart]

尝试在win10的cmd下启动init.wsl文件

    wsl -d debian -u root /etc/init.wsl start

该命令会在名为debian的wsl 发行版中执行 /etc/init.wsl 文件,如果是Ubuntu,那就把debian 换成Ubuntu

    wsl -d Ubuntu -u root /etc/init.wsl start

配置Windows开机启动

创建一个VBS文件

Set ws = CreateObject("Wscript.Shell")
ws.run "wsl -d Ubuntu -u root /etc/init.wsl start", vbhide

把这个文件拖到win的启动文件夹中即可。

使用frp进行内网穿透

frp-GitHub

服务器端

  • 下载合适的版本(查看版本arch

  • 解压tar -zxvf frp_0.22.0_linux_amd64.tar.gz

  • 配置frps.ini

    [common]
    bind_port = 7000
    dashboard_port = 7500
    token = 12345678
    dashboard_user = admin
    dashboard_pwd = admin
    vhost_http_port = 10080
    vhost_https_port = 10443
    • “bind_port”表示用于客户端和服务端连接的端口,这个端口号我们之后在配置客户端的时候要用到。
    • “dashboard_port”是服务端仪表板的端口,若使用7500端口,在配置完成服务启动后可以通过浏览器访问 x.x.x.x:7500 (其中x.x.x.x为VPS的IP)查看frp服务运行信息。
    • “token”是用于客户端和服务端连接的口令,请自行设置并记录,稍后会用到。
    • “dashboard_user”和“dashboard_pwd”表示打开仪表板页面登录的用户名和密码,自行设置即可。
    • “vhost_http_port”和“vhost_https_port”用于反向代理HTTP主机时使用,本文不涉及HTTP协议,因而照抄或者删除这两条均可。
  • 运行
    ./frps -c frps.ini

客户端(Windows)

  • 下载、解压

  • 修改frpc.ini配置

    [common]
    server_addr = x.x.x.x
    server_port = 7000
    token = 12345678
    [rdp]
    type = tcp
    local_ip = 127.0.0.1           
    local_port = 3389
    remote_port = 7001  
    [smb]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 445
    remote_port = 7002
    • “server_addr”为服务端IP地址,填入即可。
    • “server_port”为服务器端口,填入你设置的端口号即可,如果未改变就是7000
    • “token”是你在服务器上设置的连接口令,原样填入即可。
    • “[xxx]”表示一个规则名称,自己定义,便于查询即可。
    • “type”表示转发的协议类型,有TCP和UDP等选项可以选择,如有需要请自行查询frp手册。
    • “local_port”是本地应用的端口号,按照实际应用工作在本机的端口号填写即可。
    • “remote_port”是该条规则在服务端开放的端口号,自己填写并记录即可。
RDP,即Remote Desktop 远程桌面,Windows的RDP默认端口是3389,协议为TCP,建议使用frp远程连接前,在局域网中测试好,能够成功连接后再使用frp穿透连接。
SMB,即Windows文件共享所使用的协议,默认端口号445,协议TCP,本条规则可实现远程文件访问。

Shell目录下执行:./frpc -c frpc.ini

  • windows后台运行
    @echo off
    if "%1" == "h" goto begin
    mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
    :begin
    REM
    C:\frp\frpc -c C:\frp\frpc.ini
    exit

客户端(Linux)

  • 下载合适的版本(同服务端一样)

  • 编辑客户端配置frpc.ini

    [common]
    server_addr = x.x.x.x
    server_port = 7000
    token = 12345678
    [PCSSH]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 7003
  • 运行./frpc -c frpc.ini

web端查看frp运行状态

http://x.x.x.x:7500/static/#/proxies/tcp