kony d606459659 up
2025-09-16 17:15:57 +08:00
2025-05-10 11:29:31 +08:00
2025-09-16 16:47:36 +08:00
2024-12-14 11:02:01 +08:00
2025-09-16 16:47:36 +08:00
2025-07-15 13:04:21 +08:00
2025-09-16 17:10:27 +08:00
2025-07-15 13:04:21 +08:00
u
2025-03-21 15:12:08 +08:00
2024-12-14 11:12:28 +08:00
up
2025-09-16 17:15:57 +08:00
2025-01-12 14:21:16 +08:00
2025-01-27 11:08:30 +08:00
u
2025-03-28 17:23:38 +08:00
2025-09-16 09:45:24 +08:00
2025-09-16 09:45:24 +08:00
2025-09-16 09:45:24 +08:00
2025-04-03 18:24:55 +08:00
2025-05-10 11:29:31 +08:00
2025-09-16 16:47:36 +08:00
2025-09-16 16:47:36 +08:00
gc
2025-07-16 13:12:49 +08:00
2025-04-03 18:24:55 +08:00
2025-09-16 09:45:24 +08:00
2025-04-03 18:24:55 +08:00
u
2025-07-16 13:49:13 +08:00
u
2025-08-25 13:34:52 +08:00

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

Release License Stars

📥 下载最新版本

🎯 项目简介

GoodLink 是全网最简单、零成本的内网穿透一条命令将互联网任意两台主机直连无需公网IP中转、无需安装、无需注册。IP直连不限端口。

💡 解决的问题

  • 外出办公时如何使用Windows自带的远程桌面
  • 如何在外网直接访问公司内网的WEB、GIT、SSH等服务
  • 如何避免第三方服务器带来的数据安全风险?

⚖️ 免责声明

重要提醒:本项目仅供学习研究使用,严禁用于任何违法行为!

项目目前为开源免费,如未来有商业化计划将提前告知社区。

🏆 项目荣誉

特别通知本项目已被邀请参与【GitCode百大项目】评选

欢迎 点击这里 提出问题或需求,帮助项目发展的同时有机会获得奖品!

核心特点

🔒 点对点直连

  • 真正的P2P连接:两台主机直接连接,数据不经过任何第三方服务器
  • 数据安全保障:所有通信数据端到端加密,无数据泄露风险
  • 低延迟传输:直连模式确保最佳的网络性能

🚀 开箱即用

  • 零配置部署:一条命令即可启动,无需复杂配置
  • 免安装使用:绿色软件,下载即用
  • 无需公网IP利用NAT穿透技术普通家庭网络即可使用
  • 跨平台支持支持Windows、Linux、Docker多种部署方式
工作原理图

GoodLink工作原理示意图

🏗️ 架构说明

🔗 连接模式

  • Remote端:作为服务提供方,接受连接
  • Local端:作为客户端,发起连接
  • 连接方向Local端 → Remote端单向访问
  • 连接数量多个Local端可连接同一Remote端但Local端不能同时连接多个Remote端

🔑 安全认证

  • 通过共享密钥(--key)建立连接
  • 安全提醒请使用16-24字节的随机密钥切勿使用示例密钥

💻 部署选项

平台 支持方式 推荐程度 说明
Windows 命令行 / UI界面 命令行版本更稳定
Linux 命令行 / Docker 支持
macOS 命令行 v2暂不支持

📡 NAT兼容性

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

🛡️ 安全提醒

  • Windows Defender:可能误报病毒,请添加信任
  • 开源透明:所有代码公开,可自行审查
  • 数据安全:点对点加密,无中间人攻击风险
  • 详细安全说明查看安全分析

📝 使用限制

  • Local端限制每台设备只能运行一个Local端实例
  • 虚拟网卡Local端需要管理员权限创建虚拟网卡
  • 项目状态:早期版本,欢迎反馈问题和建议

⚠️ 其他重要说明

  1. 关闭路由器防火墙建议设置DMZ为本机IP

  2. NAT类型优化如3分钟内无法建立连接请联系运营商客服修改NAT类型

    • 电信10000 | 移动10086 | 联通10010
    • 优先级NAT1 > NAT2 > NAT3 > NAT4
  3. 如超过3分钟无法直连找客服电信10000,移动10086,联通10010改NAT类型优先NAT1>NAT2>NAT3

  4. 本程序即支持命令行方式, 也支持 docker 方式, windows 还有UI版本但cmd版本更稳定、性能更高、内存占用非常小, 可随意搭配

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

  6. 可以在 local 端访问 remote 端, 但是反过来不可以

  7. 可以无限个 local 端连接同一个 remote 端, 但一个 local 端不能同时连接多个 remote 端。通过相同的密钥(--key)确认连接关系

  8. 由于Local端需要创建虚拟网卡因此一个PC端只能运行一个 local 端确定右下角任务栏只能一个GoodLink图标

  9. 以下举例说明中的密钥(--key), 请不要使用, 否则会连上别人的 remote 端, 或者被别人的 local 端连上。自己随机一个 16-24 字节长度的密钥

  10. 该项目刚刚起步, 可能不太稳定, 欢迎提出ISSUES, 帮忙测试的同学将保证永久免费使用

🔧 工作模式

双模式并行:以下两种模式同时工作,无需选择,提供最大的灵活性

🌐 TUN模式虚拟网卡

工作原理

  • Local端创建虚拟网卡建立透明的网络隧道
  • 需要管理员权限运行
  • 连接成功后显示Remote端IP地址

使用场景

# 示例使用Windows远程桌面
# 1. 获取Remote端IP192.168.100.1
# 2. 在Local端打开"远程桌面连接"
# 3. 输入Remote端IP即可直接连接
mstsc /v:192.168.100.1

适用于

  • Windows远程桌面RDP
  • 直接IP访问的应用
  • 网络设备管理
  • 内网服务访问

🔀 SOCKS5代理模式

工作原理

  • 提供标准SOCKS5代理服务
  • 代理地址:socks5://Remote端IP:1080
  • 支持TCP协议UDP暂不支持

配置示例

# 代理地址配置
SOCKS5_PROXY=socks5://192.168.100.1:1080

# Git代理配置
git config --global http.proxy socks5://192.168.100.1:1080
git config --global https.proxy socks5://192.168.100.1:1080

# SSH代理配置通过ProxyCommand
ssh -o ProxyCommand='nc -X 5 -x 192.168.100.1:1080 %h %p' user@target_host

浏览器配置

  • Chrome/Edge推荐使用 SwitchyOmega 插件
  • Firefox内置代理设置支持

适用于

  • Web浏览器代理
  • Git/SVN版本控制
  • SSH远程连接
  • 各类支持SOCKS5的应用

🔄 模式对比

特性 TUN模式 SOCKS5模式
权限要求 管理员权限 普通权限
配置复杂度 零配置 需应用配置
支持协议 全协议 TCP
透明度 完全透明 需手动配置
适用场景 系统级访问 应用级代理

🚀 快速开始

📋 准备工作

  1. 下载程序:从 发布页面 下载对应平台版本
  2. 生成密钥创建16-24字节的随机密钥重要不要使用示例密钥
  3. 网络配置确保路由器NAT类型为NAT1-NAT3

🔧 部署Remote端服务提供方

说明Remote端通常部署在公司内网或目标网络环境

🪟 Windows

UI界面方式(推荐新手)

Windows UI Remote端配置

命令行方式(推荐服务器)

# 以管理员身份运行PowerShell
.\goodlink-windows-amd64.exe --fork --key=YOUR_SECRET_KEY_HERE --remote

🐧 Linux

命令行方式

# 下载并运行
wget https://gitee.com/konyshe/goodlink/releases/download/latest/goodlink-linux-amd64
chmod +x goodlink-linux-amd64
./goodlink-linux-amd64 --key=YOUR_SECRET_KEY_HERE --remote

Docker方式(推荐生产环境)

# 拉取并运行容器
docker run -d \
  --name=goodlink-remote \
  --net=host \
  --restart=always \
  registry.cn-shanghai.aliyuncs.com/kony/goodlink \
  --key=YOUR_SECRET_KEY_HERE \
  --remote

系统服务方式

# 创建systemd服务文件
sudo tee /etc/systemd/system/goodlink.service > /dev/null <<EOF
[Unit]
Description=GoodLink Remote Service
After=network.target

[Service]
Type=simple
User=root
ExecStart=/usr/local/bin/goodlink-linux-amd64 --key=YOUR_SECRET_KEY_HERE --remote
Restart=always
RestartSec=5

[Install]
WantedBy=multi-user.target
EOF

# 启动服务
sudo systemctl daemon-reload
sudo systemctl enable goodlink
sudo systemctl start goodlink

📱 部署Local端客户端

说明Local端部署在需要访问内网的设备上如个人电脑、笔记本

🪟 Windows

UI界面方式(推荐)

Windows UI Local端配置

命令行方式

# 以管理员身份运行(必须!)
.\goodlink-windows-amd64.exe --fork --key=YOUR_SECRET_KEY_HERE --local

🐧 Linux

命令行方式

# 需要root权限
sudo ./goodlink-linux-amd64 --key=YOUR_SECRET_KEY_HERE --local

⚠️ Docker限制由于Local端需要创建虚拟网卡Docker环境下暂不支持

🔍 连接状态检查

成功连接的标志

  • Local端显示Remote端IP地址
  • 可以ping通Remote端IP
  • 日志显示"P2P connection established"

连接测试

# 在Local端测试连接
ping <Remote端IP>
telnet <Remote端IP> 1080  # 测试SOCKS5代理

🛠️ 常用参数说明

参数 说明 示例
--key 连接密钥(必须) --key=MySecretKey123456
--remote 运行为Remote端 --remote
--local 运行为Local端 --local
--fork 后台运行Windows --fork
--log-level 日志级别 --log-level=debug
--port 自定义端口 --port=8080

📚 更多资源

📖 文档链接

🤝 社区支持

💬 交流方式

🎯 贡献指南

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

🙏 致谢

特别感谢以下贡献者:

  • danshiyuan - 早期测试和反馈
  • 所有提交Issue和建议的用户
  • 帮助测试和推广的社区成员

📄 许可证

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

支持项目

如果这个项目对您有帮助,请:

  • 给项目点个 Star
  • 分享给更多需要的朋友
  • 提交使用反馈和建议
  • 参与社区讨论

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

Made with ❤️ by GoodLink Team

Description
No description provided
Readme Apache-2.0 9.6 MiB
Languages
Go 97.1%
Makefile 1.2%
Dockerfile 0.7%
Shell 0.6%
Batchfile 0.4%