Featured image of post Ngrok内网穿透实现远程桌面

Ngrok内网穿透实现远程桌面

字数总计: 888 阅读时长: 2 分钟   阅读量:2080

  内网穿透的主要目的: 让外网的计算机能访问内网的机器。
  说到内网穿透,第一反应想到的可能就是花生壳和向日葵软件,但因为它是收费的,所以今天我们借助一个开源项目**Ngrok **来搭建自己的内网穿透服务器。

材料准备

  1. CentOS(amd64 6.X或7.X)服务器
  2. 公网域名 (没有的可以去万网注册 )
  3. SSH远程连接软件 (如Xshell, SecureCRT, putty等)

搭建Ngrok服务器(CentOS 6.X或7.X)

准备工作

  1. 安装gcc编译器
yum install gcc -y
  1. 安装git工具
yum install git -y
  1. 克隆Ngrok源码
git clone https://github.com/inconshreveable/ngrok.git
  1. 安装Go语言环境
wget https://storage.googleapis.com/golang/go1.8.3.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.8.3.linux-amd64.tar.gz
vim /etc/profile

在profile文件末尾添加以下的内容:

#go lang
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin

生效环境,并检查是否成功安装Go环境

source /etc/profile
go version

生成证书

cd /ngrok
mkdir cert
cd cert

#这里修改为自己的域名
NGROK_DOMAIN="my.domain.com"

openssl genrsa -out rootCA.key 2048
openssl req -x509 -new -nodes -key rootCA.key -subj "/CN=$NGROK_DOMAIN" -days 5000 -out rootCA.pem
openssl genrsa -out device.key 2048
openssl req -new -key device.key -subj "/CN=$NGROK_DOMAIN" -out device.csr
openssl x509 -req -in device.csr -CA rootCA.pem -CAkey rootCA.key -CAcreateserial -out device.crt -days 5000

覆盖原本证书

yes|cp rootCA.pem /usr/local/ngrok/assets/client/tls/ngrokroot.crt
yes|cp device.crt /usr/local/ngrok/assets/server/tls/snakeoil.crt
yes|cp device.key /usr/local/ngrok/assets/server/tls/snakeoil.key

编译Ngrok

查看不同系统下的不同配置信息

  • Linux 平台 32 位系统:GOOS=linux GOARCH=386
  • Linux 平台 64 位系统:GOOS=linux GOARCH=amd64
  • Windows 平台 32 位系统:GOOS=windows GOARCH=386
  • Windows 平台 64 位系统:GOOS=windows GOARCH=amd64
  • MAC 平台 32 位系统:GOOS=darwin GOARCH=386
  • MAC 平台 64 位系统:GOOS=darwin GOARCH=amd64
  • ARM 平台:GOOS=linux GOARCH=arm

编译生成 Linux 服务端

GOOS=linux GOARCH=amd64 make release-server

编译生成 window 客户端

GOOS=windows GOARCH=amd64 make release-client

启动Ngrok服务

cd /usr/local/ngrok
# 注意domain修改为自己的域名,7788可以修改为自定义端口号
nohup ./bin/ngrokd -tlsKey="assets/server/tls/snakeoil.key" -tlsCrt="assets/server/tls/snakeoil.crt" -domain="my.domain.com"  -httpAddr=":7788" &

Window客户端配置

ngrok配置文件

新建文件 ngrok.cfg

server_addr: "my.domain.com:4443"
trust_host_root_certs: false
tunnels:
  mstsc:
    remote_port: 56666
    proto:
      tcp: 127.0.0.1:3389

根据自己域名和端口信息修改server_addrremote_port

新建ngrok.bat

ngrok -config="ngrok.cfg" start mstsc

其中ngrok为之前编译的可执行文件ngrok.exe, 之前编译失败的可直接下载适用于windows 64位系统的ngrok程序 - ngrok-stable-windows-amd64.zip

运行ngrok.bat即可启动

Window开机ngrok自启动(非必选)

  1. 新建ngrok.vbe文件

  2. 写入以下程序

set ws=wscript.createobject("wscript.shell")  
ws.run "ngrok.bat /start",0 
  1. 运行中启动 shell:startup

  2. 创建ngrok.vbe快捷方式拷贝到启动目录中

Window远程桌面连接

  1. 运行中启动 mstsc

  2. 输入ngrok服务器地址,用户和密码等

  3. 远程桌面成功效果图

跳转评论 评论

Nickname
Email
Website
0/500
  • OωO
  • |´・ω・)ノ
  • ヾ(≧∇≦*)ゝ
  • (☆ω☆)
  • (╯‵□′)╯︵┴─┴
  •  ̄﹃ ̄
  • (/ω\)
  • ∠( ᐛ 」∠)_
  • (๑•̀ㅁ•́ฅ)
  • →_→
  • ୧(๑•̀⌄•́๑)૭
  • ٩(ˊᗜˋ*)و
  • (ノ°ο°)ノ
  • (´இ皿இ`)
  • ⌇●﹏●⌇
  • (ฅ´ω`ฅ)
  • (╯°A°)╯︵○○○
  • φ( ̄∇ ̄o)
  • ヾ(´・ ・`。)ノ"
  • ( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
  • (ó﹏ò。)
  • Σ(っ °Д °;)っ
  • ( ,,´・ω・)ノ"(´っω・`。)
  • ╮(╯▽╰)╭
  • o(*////▽////*)q
  • >﹏<
  • ( ๑´•ω•) "(ㆆᴗㆆ)
  • 😂
  • 😀
  • 😅
  • 😊
  • 🙂
  • 🙃
  • 😌
  • 😍
  • 😘
  • 😜
  • 😝
  • 😏
  • 😒
  • 🙄
  • 😳
  • 😡
  • 😔
  • 😫
  • 😱
  • 😭
  • 💩
  • 👻
  • 🙌
  • 🖕
  • 👍
  • 👫
  • 👬
  • 👭
  • 🌚
  • 🌝
  • 🙈
  • 💊
  • 😶
  • 🙏
  • 🍦
  • 🍉
  • 😣
  • 颜文字
  • Emoji
  • Bilibili
1 comments
Anonymous

iOS 10.2
WeChat 7.0.5