由于 ipv4 地址的数量不足,大部分中国地区的家庭 ip 地址均是由 ISP 转发,无法实现搭建个人服务器的目标。而如果采用 ddns 服务商如花生壳等,在价格昂贵的同时配置极为复杂且不稳定。为解决这样的问题,localtunnel 出现了。
localtunnel 是一个基于 nodejs 的内网穿透工具。通过简单的安装可以实现将内网里的设备的某个端口暴露在公网中以提供服务
npm install -g localtunnel
lt --port PORT_OF_YOUR_SERVICE // 创建一个请求到 localtunnel.me 来获取一个 URL 指向你的服务
// 输出:your url is: https://RANDOM.localtunnel.me
// Advanced
// 使用 subdomain 参数和 local-host 参数
lt --port PORT_OF_YOUR_SERVICE --subdomain test --local-host HOSTNAME
// 请求将 HOSTNAME:PORT_OF_YOUR_SERVICE 暴露在 test.localtunnel.me 上
localtunnel.me 只适用于开发测试之类的活动,不适合搭载生产环境 (使用自己搭建的localltunnel-server服务端来负载生产环境)
localtunnel.me 服务器在国外,可能造成访问缓慢(使用自己搭建的localltunnel-server服务端来避免)。
localtunnel-server
负责 localtunnel 请求并建立链接
预先要求
一台具有公网 ip 的服务器
服务器需要开放 1000-65535 的 tcp 端口
一个顶级域名 (localtunnel-server master branch 不支持子域名)
将域名 example.com 和 *.example.com 解析到你的服务器上
安装与运行
# pick a place where the files will live
git clone git://github.com/defunctzombie/localtunnel-server.git
cd localtunnel-server
npm install
# server set to run on port 1234
bin/server --port 1234
bin/server --port 80
lt --host http://116.62.78.172:80 --port 8080
npm config set registry http://registry.npm.taobao.org
docker安装
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
service docker start
docker version
docker加速
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://19b12x6i.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
docker安装localtunne
docker run -d \
--restart always \
--name localtunnel \
--net host \
defunctzombie/localtunnel-server:latest --port 80
docker pull defunctzombie/localtunnel-server:latest
docker login --username=15088694571 registry.cn-hangzhou.aliyuncs.com
docker tag defunctzombie/localtunnel-server registry.cn-hangzhou.aliyuncs.com/lzj123/docker:localtunnel-server
docker push registry.cn-hangzhou.aliyuncs.com/lzj123/docker:localtunnel-server
C:\Users\l>lt --port 8080
your url is: https://empty-emu-72.loca.lt
https://empty-emu-72.loca.lt/blog/
C:\Users\l>lt --help
Usage: lt --port [num] <options>
Options:
-p, --port Internal HTTP server port [required]
-h, --host Upstream server providing forwarding
[default: "https://localtunnel.me"]
-s, --subdomain Request this subdomain
-l, --local-host Tunnel traffic to this host instead of localhost,
override Host header to this host
--local-https Tunnel traffic to a local HTTPS server [boolean]
--local-cert Path to certificate PEM file for local HTTPS server
--local-key Path to certificate key file for local HTTPS server
--local-ca Path to certificate authority file for self-signed
certificates
--allow-invalid-cert Disable certificate checks for your local HTTPS server
(ignore cert/key/ca options) [boolean]
-o, --open Opens the tunnel URL in your browser
--print-requests Print basic request info [boolean]
--help Show this help and exit [boolean]
--version Show version number [boolean]
由于我的服务器没有域名绑定,不知道该怎么将本地映射到我的服务器
lt --port 8080
猜测:应该走的是https://localtunnel.me
而不是我的http:116.62.78.172
Upstream server providing forwarding
提供转发的上游服务器
[default: "https://localtunnel.me"]
菜鸟的自白
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现