2026-03-31 09:41:55 +08:00
2024-12-14 11:12:28 +08:00
2026-03-18 11:57:37 +08:00
2026-03-10 20:50:13 +08:00
u
2025-07-16 13:49:13 +08:00

全网最简单、零成本的内网穿透

Release License Stars

外出办公, 对比市面上的远程工具, 无论画质、软件适配, 都不如 windows 自带的远程桌面, 但外出如何使用 windows远程桌面?

是否可以无需远程桌面, 直接访问公司的内网 WEB, GIT, SSH 等?

windows 自带杀毒软件, 会将所有 go 语言写的程序都默认为病毒。本程序已开源, 放心食用

注: 仅用于学习研究, 无商业合作,更无恶意行为。如有广告之类盈利行为,会告知大家。

郑重声明:严禁用于违法行为!!!

特点

原理图

一定要看

  1. 建议路由器和光猫使用桥接方式,关闭路由器防火墙,开启路由器UPNP

  2. 如超过5分钟无法直连,找客服(电信10000,移动10086,联通10010)改NAT类型,优先NAT1>NAT2>NAT3

  3. 两端主机运行同一个程序 / Docker, 一端使用--remote 选项(以下称 remote 端), 另一端使用--local 选项(以下称 local 端)

  4. 可以在 local 端访问 remote 端, 但是反过来不可以。通过相同的密钥(--key)确认连接关系

  5. 遇到无法连接windows远程桌面的情况,在IP后面加上 :13389,再尝试连接

📡 NAT兼容清单

Remote端NAT Local端NAT P2P连接 说明
NAT1-3 NAT1-4 支持 推荐配置
NAT1-4 NAT1-3 支持 推荐配置
NAT4 NAT4 ⚠️ 不保证 运营商限制
移动网络 移动网络 不支持 运营商限制

快速使用

启动 remote端(以下方式任选)

UI版本(仅Windows

使用说明

命令行版本

# windows
.\goodlink-windows-amd64-cmd.exe --key=AIabJpEIYHMDIA6NBgOBboYJ --remote
# linux
./goodlink-linux-amd64-cmd --key=AIabJpEIYHMDIA6NBgOBboYJ --remote
# linux, Docker
docker run -d --name=goodlink --net=host --restart=always registry.cn-shanghai.aliyuncs.com/kony/goodlink --key=AIabJpEIYHMDIA6NBgOBboYJ --remote

启动 local端(以下方式任选)

UI版本(仅Windows

使用说明

命令行版本

# windows
.\goodlink-windows-amd64-cmd.exe --fork --key=AIabJpEIYHMDIA6NBgOBboYJ --local
# linux
./goodlink-linux-amd64-cmd --key=AIabJpEIYHMDIA6NBgOBboYJ --local
# linux, Docker
Docker暂不支持虚拟网卡(TUN模式)

Local端工作模式

注:以上操作步骤,会同时启动TUN直连模式和TUN代理模式

TUN直连模式

Local端会创建一个虚拟网卡, 因此需要管理员权限运行。连接成功后,界面会显示: Remote端IP (192.17.19.1)
支持TCP和UDP连接

连接成功后,访问192.17.19.1,就等于访问Remote端

举例: 在Local端打开 windows 远程桌面, 填写: 192.17.19.1:13389, 即可访问Remote端的远程桌面

TUN代理模式

可访问Remote端所有的网络资源

连接成功后,在本机配置代理即可使用(仅支持TCP代理):
socks5://127.0.0.1:1080 或 http://127.0.0.1:1080

本地代理模式(可略过)(该模式下,TUN直连模式、TUN代理模式不会启动)

适用于无法创建虚拟网卡的环境(如MacOS、Docker、无管理员权限等),或同一主机有多个Local端的场景(虚拟网卡不能创建多个)
该模式目前只支持命令行版本,使用 --proxy 选项,即可启动该模式
格式: --proxy=Local端监听地址:Local端监听端口
# linux其他环境以此类推)
./goodlink-linux-amd64-cmd --key=AIabJpEIYHMDIA6NBgOBboYJ --local --proxy=0.0.0.0:1080
连接成功后,在本机配置代理即可使用(仅支持TCP代理):
socks5://127.0.0.1:1080 或 http://127.0.0.1:1080

本地转发模式(可略过)(该模式下,TUN直连模式、TUN代理模式不会启动)

在本地代理模式的基础上,适用于不支持代理方式访问的场景
该模式目前只支持命令行版本,使用 --forward 选项,即可启动该模式
连接成功后,在Local端访问本地指定端口等于在Remote端访问指定地址和端口
格式: --forward=Local端监听地址:Local端监听端口@Remote端目标地址:Remote端目标端口,多个转发规则用逗号间隔
# linux, 单个端口转发(其他环境以此类推)
./goodlink-windows-amd64-cmd.exe --key=AIabJpEIYHMDIA6NBgOBboYJ --local --forward=0.0.0.0:22@127.0.0.1:22
# linux, 多个端口转发(其他环境以此类推)
./goodlink-windows-amd64-cmd.exe --key=AIabJpEIYHMDIA6NBgOBboYJ --local --forward=0.0.0.0:22@127.0.0.1:22,0.0.0.0:80@127.0.0.1:80
# linux, 同时使用代理和端口转发(其他环境以此类推)
./goodlink-windows-amd64-cmd.exe --key=AIabJpEIYHMDIA6NBgOBboYJ --local --proxy=0.0.0.0:1080 --forward=0.0.0.0:22@127.0.0.1:22,0.0.0.0:80@127.0.0.1:80
连接成功后:
- 本地1080端口提供socks5/http代理服务
- 访问本地22端口等同于在Remote端访问127.0.0.1:22SSH
- 访问本地80端口等同于在Remote端访问127.0.0.1:80WEB

🙏 致谢

  • 所有点了 Star的同学
  • 所有帮助测试和推广的同学
  • 所有提交Issue和建议的同学

💬 交流方式

🎯 贡献指南

  • 🐛 发现Bug?请提交Issue
  • 💡 有新想法?欢迎在Issues中讨论
  • 🔧 想要贡献代码?请先fork项目并提交PR
  • 📖 完善文档?欢迎提交文档改进建议

📄 许可证

本项目采用 MIT 许可证开源,详情请查看 LICENSE 文件。


让内网访问变得简单安全!

Made with ❤️ by Goodlink Team

S
Description
No description provided
Readme Apache-2.0 16 MiB
Languages
Go 97.4%
Makefile 1.1%
Dockerfile 0.6%
Shell 0.5%
Batchfile 0.4%