Lucky端口转发小工具
Dockerhub:https://hub.docker.com/r/gdy666/lucky
特性
Lucky最初是作为一个小工具,由开发者为自己的个人使用而开发,用于替代socat,在小米路由AX6000官方系统上实现公网IPv6转内网IPv4的功能。Lucky的设计始终致力于让更多的Linux嵌入式设备运行,以实现或集成个人用户常用功能,降低用户的硬件和软件操作学习成本,同时引导使用者注意网络安全。随着版本更新和网友反馈,Lucky不断迭代改进,拥有更多功能和更好的性能,成为用户值得信赖的工具。
Lucky 的核心程序完全采用 Golang 实现,具有高效、稳定、跨平台等优点。其后台前端则采用 Vue3.2 技术进行开发,具有良好的用户体验和响应速度。此外,Lucky 的管理后台采用前后端分离的架构,第三方开发者也可以自由使用OpenToken轻松调用Lucky的各种功能接口。
功能模块
XML/HTML代码
- 目前已经实现/集成的主要功能模块有
- 端口转发
- 动态域名(DDNS)
- Web服务
- Stun内网穿透
- 网络唤醒
- 计划任务
- ACME自动证书
- 网络存储
端口转发
XML/HTML代码
- 主要用于实现公网 IPv6 转内网 IPv4 的 TCP/UDP 端口转发。
- 支持界面化的管理转发规则,用户可以通过 web 后台轻松地进行规则的添加、删除、修改等操作。
- 单条转发规则支持设置多个转发端口,这样可以实现多个内网服务端口的转发。
- 提供了一键开关和定时开关功能,用户可以根据自己的需求设置转发规则的开启和关闭时间,还可以使用计划任务模块进行定时开关。
- 单条规则支持黑白名单安全模式切换,用户可以根据需要选择使用白名单模式或黑名单模式。
- 白名单模式可以让没有安全验证的内网服务端口稍微安全一点暴露到公网,提高服务可用性。
- 实时记录最新的访问日志,方便用户了解转发情况。
- 规则列表日志一目了然,用户可以方便地追踪转发异常,及时进行排查和处理。
- 动态域名(DDNS)
- 支持接入多个不同的 DNS 服务商。
- 支持全功能自定义回调(Callback),包括设置 BasicAuth,方便接入任意 DNS 服务商。
- Webhook 支持自定义 headers。
- 内置常用免费 DNS 服务商设置模板(每步、No-IP、Dynv6、Dynu),通过自定义回调进行快速接入,仅需修改相应用户密码或 token 即可一键填充。
- 支持 阿里云,百度云,华为云,京东云,腾讯云,火山引擎,帝恩爱斯-DNS.LA,Cloudflare,deSEC,DNSPod.CN,DNSPod.COM,Dynadot,Dynv6,Freemyip ,GoDaddy,Name.com,NameSilo,Porkbun,Vercel等服务商。
Web服务
XML/HTML代码
- 支持反向代理、重定向和 URL 跳转。
- 支持 HTTP 基本认证。
- 支持 IP 黑白名单模式。
- 支持 UserAgent 黑白名单。
- 规则日志清晰易懂,便于追踪异常。
- 支持一键开关规则和定时开关规则。
Stun内网穿透
XML/HTML代码
- 实现内网穿透,无需公网IPv4地址。
- 适合于国内运营商级NAT1宽带网络。
网络唤醒
XML/HTML代码
- 支持远程控制唤醒和关机操作
- 支持接入第三方物联网平台(点灯科技 巴法云),可通过各大平台的语音助手控制设备唤醒和关机。
计划任务
XML/HTML代码
- 不依赖 Linux 系统的 Cron,支持 Windows 系统。
- 操作简便,可视化编辑。
- 可操作控制 Lucky 框架内的其他模块开关。
ACME自动证书
XML/HTML代码
- 支持 ACME 自动证书的申请和续签。
- 支持 阿里云,百度云,华为云,京东云,腾讯云,火山引擎,帝恩爱斯-DNS.LA,Cloudflare,deSEC,DNSPod.CN,DNSPod.COM,Dynadot,Dynv6,Freemyip ,GoDaddy,Name.com,NameSilo,Porkbun,Vercel等服务商。
网络存储
XML/HTML代码
- 网络存储模块是一个应用范围广泛的模块,它提供了将本地存储、WebDAV和阿里云盘挂载到Lucky内部的各个文件类服务功能。
- 通过网络存储模块,你可以将添加的存储挂载到Web服务的文件服务、WebDAV、FTP和FileBrowser模块,实现更加便捷的文件管理和访问。
使用
默认后台管理地址 http://<运行设备IP>:16601 默认登录账号: 666 默认登录密码: 666
常规使用请用 -cd <配置文件夹路径> 指定配置文件夹的方式运行
#仅指定配置文件夹路径(如果配置文件夹不存在会自动创建),建议使用绝对路径
XML/HTML代码
- lucky -cd luckyconf
不挂载主机目录, 删除容器同时会删除配置
XML/HTML代码
- # host模式, 同时支持IPv4/IPv6, Liunx系统推荐
- docker run -d --name lucky --restart=always --net=host gdy666/lucky
- # 桥接模式, 只支持IPv4, Mac/Windows推荐,windows 不推荐使用docker版本
- docker run -d --name lucky --restart=always -p 16601:16601 gdy666/lucky
在浏览器中打开http://主机IP:16601,修改你的配置,成功
[可选] 挂载主机目录, 删除容器后配置不会丢失。可替换 /root/luckyconf 为主机目录, 配置文件夹为lucky
XML/HTML代码
- docker run -d --name lucky --restart=always --net=host -v /root/luckyconf:/goodluck gdy666/lucky
#开发编译
XML/HTML代码
- ```bash
- go build -v -tags "adminweb nomsgpack" -ldflags="-s -w"
- ```
使用注意与常见问题
不同于防火墙端口转发规则,不要设置没有用上的端口,会增加内存的使用.
小米路由 ipv4 类型的80和443端口被占用,但只设置监听tcp6(ipv6)的80/443端口转发规则完全没问题.
如果需要使用白名单模式,请根据自身需求打开外网访问后台管理页面开关.
转发规则启用异常,端口转发没有生效时请登录后台查看日志.
手动配置:
确认路由器设备已经开启SSH并获取root权限(带GUI桌面的Linux设备可使用自带终端安装)
使用SSH连接工具(如putty,JuiceSSH,系统自带终端等)路由器或Linux设备的SSH管理界面或终端界面,并切换到root用户
确认设备已经安装curl或者wget下载工具。如未安装,LInux设备请参考此处安装curl,基于OpenWrt(小米官方系统、潘多拉、高恪等)的设备请使用如下命令安装curl:
opkg update && opkg install curl #如已安装请忽略
之后在SSH界面执行如下安装命令,并按照后续提示完成安装
升级新版本只需重新运行安装指令,末尾参数改为最新版本号,安装完成后在后台设置页面重启程序即可.
(如无法连接或出现SSL连接错误,请尝试更换各种不同的安装源!)、
使用curl安装:
XML/HTML代码
- 新增半自动离线安装lucky的脚本 daji.sh
- 将daji.sh下载上传到 /tmp/目录下
- 执行
- chmod +x daji.sh
- 赋予执行权限,然后运行
- sh daji.sh
- 查看当前CPU架构,根据CPU架构选择合适的lucky tar.gz文件上传到/tmp目录下。
- 再次执行sh daji.sh 选择1根据提示安装即可。
XML/HTML代码
- #私人源
- curl -o /tmp/install.sh http://www.daji.it:6/files/golucky.sh && sh /tmp/install.sh http://www.daji.it:6/files 2.7.4
- wget -O /tmp/install.sh http://www.daji.it:6/files/golucky.sh && sh /tmp/install.sh http://www.daji.it:6/files 2.7.4
- #fastgit.org加速
- curl -o /tmp/install.sh https://raw.fastgit.org/gdy666/lucky-files/main/golucky.sh && sh /tmp/install.sh https://raw.fastgit.org/gdy666/lucky-files/main 2.7.4
- #jsDelivrCDN源
- curl -o /tmp/install.sh https://fastly.jsdelivr.net/gh/gdy666/lucky-files@main/golucky.sh && sh /tmp/install.sh https://fastly.jsdelivr.net/gh/gdy666/lucky-files@main 2.7.4
使用wget安装:
XML/HTML代码
- #fastgit.org加速
- wget -O /tmp/install.sh https://raw.fastgit.org/gdy666/lucky-files/main/golucky.sh && sh /tmp/install.sh https://raw.fastgit.org/gdy666/lucky-files/main/ 2.7.4
- #jsDelivrCDN源
- wget -O /tmp/install.sh https://fastly.jsdelivr.net/gh/gdy666/lucky-files@main/golucky.sh && sh /tmp/install.sh https://fastly.jsdelivr.net/gh/gdy666/lucky-files@main 2.7.4
运行时的额外依赖:
大部分的设备/系统都已经预装了以下的大部分依赖,使用时如无影响可以无视之
bash/ash 必须 全部缺少时无法安装及运行脚本
curl/wget 必须 全部缺少时无法在线安装及更新,无法使用节点保存功能
systemd/rc.common 一般 全部缺少时只能使用保守模式,可能无法设置开机自动启动