zoukankan      html  css  js  c++  java
  • 为了方便远程办公, 我用 500 行 go 语言写了一个简单的远程桌面代理

    一个远程桌面代理

    这是一个用go写的远程桌面代理, 您可以部署它, 然后在任何地方远程访问您的电脑; 代码只有500行;
    
    疫情期间, 很多同学被困, 无法办公, 如果有一个远程桌面代理, 让办公室的同事帮忙启动一下代理, 就可以用家里的电脑远程连接公司的电脑进行办公了;
    
    它的成本非常低, 以百度云为例, 一个月 10元, 3个人合用, 每个人只需要 3元;

    原理

    • 如下图所示, PC1 和 PC2 各自在局域网的路由器下面, 没有公网 IP, 所以 PC1 无法访问 PC2;

    •  需要一个公网的云主机作为代理, 连接 PC1 和 PC2; 如下图所示;

    代理1 运行在 PC2, 连接PC2的 3389 端口, 将数据转发到云主机, 将 代理2 和 本机3389 端口之间的数据进行中转;
    代理2 运行在云主机, 接受 PC1 的远程桌面连接请求, 接受 PC2 上 代理1 的请求, 将他们之间的数据进行中转;

    使用

    1. 租一台云主机, 有一个公网的IP;

    2. 编译

    Linux:
    go build -o main main.go
    Windows:
    go build -o main.exe main.go

    3. 运行

    • 注意: 我们假设 "106.13.33.123" 是云主机公网的IP, "172.16.33.123" 是云主机本机的IP; 假设编译出来的程序名字是 main(Linux), main.exe(Windows);
    在云主机运行:
    nohup ./main -log_dir="./log" -v=10 -alsologtostderr=true -st="ss" -s1="172.16.33.123:3390" -s2="172.16.33.123:52201" &
    在 PC2 上运行:
    start .main.exe -log_dir="./log" -v=10 -alsologtostderr=true -st="cc" -s1="127.0.0.1:3389" -s2="106.13.33.123:52201"
    • 注意:
    云主机上的代理开放本机的 52201 和 3390 端口, 52201 端口供 代理1 连接, 3390 端口供 PC1 连接;
    PC2 上的代理连接的是云主机的 52201 端口和本机的 3389 端口;
    如果连接有问题, 尝试重启一下云主机上的代理吧 ^^;

    4. OK, 您可以在任何联网的环境远程连接您的电脑进行办公了, 例如;

    • 在 PC1 上用远程桌面连接 106.13.33.123:3390
    • 在 手机上用微软的远程桌面app 连接 106.13.33.123:3390
    • 在 iPad上用微软的远程桌面app 连接 106.13.33.123:3390

     代码开源在 https://github.com/tidbgo/s_bridge_s , 希望对您有帮助;

  • 相关阅读:
    C嵌入汇编
    App 运营 推广相关
    POJ 3904 Sky Code
    数组的复制与动态扩展算法
    另类病毒的自删除方法
    oracle触发器中增删改查本表
    POJ 2773 Happy 2006 数学题
    Android手机便携式wifi的使用及无线数据传输(主要针对XP系统)
    Find the minimum线段树成段更新
    使用visual c++ 2005编译64位可执行文件
  • 原文地址:https://www.cnblogs.com/lijingshanxi/p/12638182.html
Copyright © 2011-2022 走看看