轻松搞定内网穿透,让WordPress博客全球可见
内网穿透访问wordpress

首页 2025-09-02 15:49:52

老李头最近在楼道里逢人就夸:“我家娃把博客搬回家里了,嗖嗖快!”我表面淡定,心里早就乐开花。要知道,三天前他还在电话里哭嚎:“怎么外网看不了我写的诗?”我让他把路由器抱来,十分钟搭好内网穿透,WordPress瞬间从局域网小可怜升级成全球在线大明星。老李激动得要把珍藏的龙井送我,我摆手:茶就免了,教程拿走,下次别半夜打电话就行。
这事儿说来也简单,可里头弯弯绕绕足够写一本段子集。先讲原理:你家宽带运营商送的是大内网地址,外网访客找不到门牌号,于是得请一位“带路小哥”——内网穿透工具——把访客领到正确的房间。市面上小哥很多:frp、nps、Cloudflare Tunnel、ZeroTier……我这次给老李选的是frp,开源、稳、文档像邻家小妹一样亲切。
第一步:准备材料
1.一台24小时不关机的“中继服务器”(我直接薅了腾讯云轻量香港,29块一个月,老李说他众筹)。
2.家里那台跑WordPress的小主机(树莓派4B,1G内存跑得欢)。
3.域名一枚,我用的是 xiangrikui.li(别笑,老李姓李,向日葵是他老伴最爱)。
4.一点点Linux命令行勇气,老李说他年轻时练过五笔,不算事儿。
第二步:服务器端搭台
SSH连上云主机,一行行敲:
wget https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_amd64.tar.gz
tar -zxvf frp_0.51.3_linux_amd64.tar.gz
cd frp_0.51.3_linux_amd64
编辑 frps.ini,只留三行:
【common】
bind_port = 7000
vhost_http_port = 80
保存,启动:./frps -c frps.ini
老李看着我屏幕,感叹:“黑底绿字,像极了我当年DOS下打《侠客行》。”
第三步:家里小主机唱戏
树莓派里同样下载对应ARM版frp,编辑 frpc.ini:
【common】
server_addr = 云主机公网IP
server_port = 7000
【web】
type = http
local_port = 80
custom_domains = xiangrikui.li
保存,启动:./frpc -c frpc.ini
此时外网访问 http://xiangrikui.li 就能看到WordPress,老李激动得拍桌子:“我孙女在美国也能看!”
第四步:HTTPS不能少
老李说诗得配绿锁才高雅。云主机上跑个Nginx,申请Let’s Encrypt证书,反向代理到 frp 的 80 端口。两行配置搞定:
proxy_pass http://127.0.0.1:80;
proxy_set_header Host $host;
certbot --nginx 一键签发,老李直呼魔法。
第五步:自动启动
服务器和树莓派都写 systemd 服务,断电重启也不怕。老李把脚本抄进小本子,像珍藏武林秘籍。
尾声
夜里十一点,老李给我发微信:“阅读量破三百了!”我回他一个龇牙笑的表情。技术让诗飞向远方,也让老男孩重拾少年心气。谁说内网穿透只是冷冰冰的端口映射?它分明是把柴米油盐的日常,偷偷升级成了星辰大海的远方。
———————————————————— 教程:零基础上手“内网穿透访问WordPress”
目标:让外网用户通过域名安全访问家里局域网里的WordPress站点。
一、名词解释
  1. 内网穿透:把局域网服务暴露到公网的技术统称。
  2. frp:开源、跨平台的内网穿透工具,分服务端 frps 和客户端 frpc。
  3. 反向代理:在本教程中,指云主机上的 Nginx 把 443 端口流量转发到 frp。
二、准备工作
  1. 云服务器一台(Linux,公网IP,建议1H1G以上)。
  2. 局域网主机一台(已部署好WordPress,监听80端口)。
  3. 已备案域名一枚(国内云需备案,香港/海外可免)。
  4. 基础工具:SSH客户端、文本编辑器、sudo权限。
三、服务端(云主机)配置
  1. 下载并解压 frp
    wget https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_amd64.tar.gz
    tar -zxvf frp_0.51.3_linux_amd64.tar.gz
    sudo mv frp_0.51.3_linux_amd64 /usr/local/frp
  2. 编辑 /usr/local/frp/frps.ini
    【common】
    bind_port = 7000
    vhost_http_port = 80
  3. 创建 systemd 服务
    sudo nano /etc/systemd/system/frps.service
    内容:
    【Unit】
    Description=frp server
    After=network.target
    【Service】
    ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
    Restart=always
    【Install】
    WantedBy=multi-user.target
    启用并启动:
    sudo systemctl daemon-reload
    sudo systemctl enable frps
    sudo systemctl start frps
四、客户端(局域网主机)配置
  1. 下载对应架构 frp(例:树莓派 ARM)
    wget https://github.com/fatedier/frp/releases/download/v0.51.3/frp_0.51.3_linux_arm.tar.gz
    tar -zxvf frp_0.51.3_linux_arm.tar.gz
    sudo mv frp_0.51.3_linux_arm /usr/local/frp
  2. 编辑 /usr/local/frp/frpc.ini
    【common】
    server_addr = <云主机公网IP>
    server_port = 7000
    【web】
    type = http
    local_port = 80
    custom_domains = yourdomain.com
  3. 创建 systemd 服务(同上,只需把 frps 改成 frpc)。
  4. 启动并设置开机自启:
    sudo systemctl daemon-reload
    sudo systemctl enable frpc
    sudo systemctl start frpc
五、域名解析
登录域名控制台,添加 A 记录:
yourdomain.com → 云主机公网IP
六、HTTPS 证书
  1. 云主机安装 Nginx:
    sudo apt update && sudo apt install nginx
  2. 添加站点配置:
    sudo nano /etc/nginx/sites-available/yourdomain
    内容:
    server {
    listen 80;
    server_name yourdomain.com;
    location / {
    proxy_pass http://127.0.0.1:80;
    proxy_set_header Host remote_addr;
    }
    }
    sudo ln -s /etc/nginx/sites-available/yourdomain /etc/nginx/sites-enabled/
  3. 安装 certbot 并签发证书:
    sudo apt install certbot python3-certbot-nginx
    sudo certbot --nginx -d yourdomain.com
    按提示输入邮箱、同意协议,完成后自动配置 443 端口。
七、验证
  1. 浏览器访问 https://yourdomain.com ,应能打开WordPress首页。
  2. 查看 frp 日志:
    云主机:sudo journalctl -u frps -f
    树莓派:sudo journalctl -u frpc -f
    确保无报错。
八、常见问题
  1. 端口被墙:请确认云主机安全组放行 7000、80、443。
  2. 路由器未放行:局域网主机需固定IP,路由器关闭AP隔离。
  3. WordPress后台样式错乱:在wp-config.php里加:
    $_SERVER【'HTTPS'】 = 'on';
    define('FORCE_SSL_ADMIN', true);
至此,外网即可安全稳定访问家里WordPress。祝你的诗与远方,一起在线。
MySQL连接就这么简单!本地远程、编程语言连接方法一网打尽
还在为MySQL日期计算头疼?这份加一天操作指南能解决90%问题
MySQL日志到底在哪里?Linux/Windows/macOS全平台查找方法在此
MySQL数据库管理工具全景评测:从Workbench到DBeaver的技术选型指南
MySQL密码忘了怎么办?这份重置指南能救急,Windows/Linux/Mac都适用
你的MySQL为什么经常卡死?可能是锁表在作怪!快速排查方法在此
MySQL单表卡爆怎么办?从策略到实战,一文掌握「分表」救命技巧
清空MySQL数据表千万别用错!DELETE和TRUNCATE这个区别可能导致重大事故
你的MySQL中文排序一团糟?记住这几点,轻松实现准确拼音排序!
别再混淆Hive和MySQL了!读懂它们的天壤之别,才算摸到大数据的门道