vibe-coding-cn/assets/documents/guides/playbook/关于手机ssh任意位置链接本地计算机,基于frp实现的...

350 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 关于手机ssh任意位置链接本地计算机基于frp实现的方法
不会弄怎么办服务器和电脑都安装好codex不会直接问gpt怎么安装终端输入命令就行了然后把文档粘贴到codex里面让他帮你配置好就行实在不会弄直接找我telegram=https://t.me/desci0 x=https://x.com/123olp ps付费代搭
# 📌 前置准备工作Prerequisites
在开始部署 FRP 服务端与客户端之前,请确保具备以下环境与工具。这些前置条件是保证 FRP 隧道正常工作所必需的。
## 1. 基础环境要求
### ✔ 一台可长期在线的 **AWS EC2 实例**
* 推荐系统Ubuntu 20.04/22.04(本文以 Ubuntu 为例)
* 必须具备公网 IPAWS 默认提供)
* 需要具备修改安全组规则的权限(开放 FRP 端口)
用途:作为 FRP 服务器端frps给 Windows 电脑提供固定访问入口。
## 2. 一台能够上网的 **Windows 电脑**
* Windows 10 或 Windows 11
* 需要具备普通用户权限(但部分配置需要管理员权限)
* 必须已安装 **OpenSSH Server**
用途:作为 FRP 客户端frpc无论连接什么网络都可自动挂到 AWS 上。
## 3. 必需下载的软件 / 仓库
### ✔ FRPFast Reverse Proxy
仓库地址(官方):
```
https://github.com/fatedier/frp
```
本部署使用版本:
```
frp_0.58.1
```
下载页面:
```
https://github.com/fatedier/frp/releases
```
需要下载:
* Linux 版(用于 AWS
* Windows 版(用于本地电脑)
## 4. 必须安装的软件
### ✔ WindowsOpenSSH Server + OpenSSH Client
安装路径:
```
设置 → 应用 → 可选功能 → 添加功能
```
用途:提供 SSH 登录能力,让 FRP 转发到 Windows 的 SSH。
## 5. 终端工具
### ✔ Termius推荐
* 用于从手机或电脑通过 SSH 连接你的 Windows
* 支持生成 SSH Key
* 支持管理多个主机
必须使用 Termius 生成 SSH 私钥(因为你启用了“仅密钥登录”)。
官方下载:
```
https://termius.com
```
## 6. 网络与端口要求
在 AWS 安全组中必须开放以下端口:
| 端口 | 用途 | 是否必须 |
| ------------------------------ | --------------------- | ---- |
| **FRP 控制端口**1234 或 114514 | frpc → frps 连接 | ✔ 必须 |
| **SSH 映射端口**12345 或 114515 | Termius → Windows SSH | ✔ 必须 |
若使用 UFWUbuntu 防火墙),还需:
```
sudo ufw allow <FRP控制端口>/tcp
sudo ufw allow <SSH映射端口>/tcp
```
## 7. 公钥 / 私钥 准备(密钥登录必需)
你需要预先准备:
* Termius 生成的 SSH 私钥(本地)
* Termius 生成的 SSH 公钥(需放到 Windows 的 authorized_keys
本部署已经禁用密码登录,因此 **私钥必须妥善保管,否则将无法登录 Windows**
## 8. 基本 Linux 操作能力
需要了解以下基础命令(很简单):
```
cd /path
nano / vim / notepad
chmod / chown
ps -ef | grep
ss -lnpt
nohup <cmd> &
tail -f
```
你文档中都已覆盖,不会有额外要求。
# 📌 前置条件总结(最终版)
```
必须具备:
- AWS EC2Ubuntu带公网 IP
- Windows 电脑(安装 OpenSSH Server
- Termius用于 SSH + 生成密钥)
- FRP下载 Linux + Windows 版本)
- AWS 安全组已开放 FRP 控制端口与 SSH 映射端口
- Termius 生成的 SSH 密钥对
```
只要满足以上前置准备,你的 FRP 隧道、SSH 密钥登录、跨网络远程访问电脑 100% 能正常运行。
如果你愿意,我还可以帮你:
* 把整个文档串成专业正式的一体化教程
* 为你的文档添加「适用范围、版本说明、架构概览图、流程图」
* 为 FRP 部署提供 systemd 服务模板
* 为 Windows 提供后台 frpc 自启脚本(更可靠)
需要的话告诉我!
# FRP 服务器端部署说明
本说明记录了当前 AWS EC2 (Ubuntu) 上的 FRP 服务端配置与操作方法,便于后续维护或重建。
## 基本信息
- 工作目录:`/home/ubuntu/.frp`
- FRP 版本:`frp_0.58.1_linux_amd64`
- 可执行文件:`/home/ubuntu/.frp/frp_0.58.1_linux_amd64/frps`
- 配置文件:`/home/ubuntu/.frp/frp_0.58.1_linux_amd64/frps.ini`
- 日志文件:`/home/ubuntu/.frp/frps.log`
- 启动脚本:`/home/ubuntu/.frp/start_frps.sh`
- 监听端口:
- 控制端口 `bind_port = 1234`
- SSH 映射端口 `12345`
- token`123456`
## 安装步骤
1. 新建目录并下载 FRP
```bash
mkdir -p /home/ubuntu/.frp
cd /home/ubuntu/.frp
wget https://github.com/fatedier/frp/releases/download/v0.58.1/frp_0.58.1_linux_amd64.tar.gz
tar -zxf frp_0.58.1_linux_amd64.tar.gz
```
2. 创建配置 `/home/ubuntu/.frp/frp_0.58.1_linux_amd64/frps.ini`
```ini
[common]
bind_port = 1234
token = 123456
```
3. 编写启动脚本 `/home/ubuntu/.frp/start_frps.sh`(已就绪):
```bash
#!/usr/bin/env bash
set -euo pipefail
BASE_DIR="$(cd "$(dirname "$0")" && pwd)"
FRP_DIR="$BASE_DIR/frp_0.58.1_linux_amd64"
FRPS_BIN="$FRP_DIR/frps"
CONFIG_FILE="$FRP_DIR/frps.ini"
LOG_FILE="$BASE_DIR/frps.log"
if ! [ -x "$FRPS_BIN" ]; then
echo "frps binary not found at $FRPS_BIN" >&2
exit 1
fi
if ! [ -f "$CONFIG_FILE" ]; then
echo "Config not found at $CONFIG_FILE" >&2
exit 1
fi
PIDS=$(pgrep -f "frps.*frps\\.ini" || true)
if [ -n "$PIDS" ]; then
echo "frps is running; restarting (pids: $PIDS)..."
kill $PIDS
sleep 1
fi
echo "Starting frps with $CONFIG_FILE (log: $LOG_FILE)"
cd "$FRP_DIR"
nohup "$FRPS_BIN" -c "$CONFIG_FILE" >"$LOG_FILE" 2>&1 &
sleep 1
PIDS=$(pgrep -f "frps.*frps\\.ini" || true)
if [ -n "$PIDS" ]; then
echo "frps started (pid: $PIDS)"
else
echo "frps failed to start; check $LOG_FILE" >&2
exit 1
fi
```
## 启动与停止
- 启动/重启:
```bash
cd /home/ubuntu/.frp
bash ./start_frps.sh
```
- 查看进程:`ps -ef | grep frps`
- 查看监听:`ss -lnpt | grep 1234`
- 查看日志:`tail -n 50 /home/ubuntu/.frp/frps.log`
- 停止(如需手动):`pkill -f "frps.*frps.ini"`
## 安全组与防火墙
- AWS 安全组sg-099756caee5666062需开放入站 TCP 1234FRP 控制)与 12345SSH 映射)。
- 若使用 ufw需执行
```bash
sudo ufw allow 1234/tcp
sudo ufw allow 12345/tcp
```
## 远程客户端要求
- Windows `frpc.ini``server_addr` 指向该 EC2 公网 IP`server_port=1234``remote_port=12345`token 与服务器一致。
- Termius/SSH 客户端使用 `ssh lenovo@<AWS IP> -p 12345`认证方式为密钥Termius Keychain 生成的私钥)。
## 维护建议
- FRP 官方已提示 INI 格式未来会被弃用,后续升级建议改用 TOML/YAML。
- 可将 `start_frps.sh` 注册成 systemd 服务,确保实例重启后自动拉起。
- 定期检查 `frps.log` 是否有异常连接或错误,并确保 token 不泄露。
FRP Windows 客户端配置说明
================================
最后更新2025-12-05
适用环境Windows 10/11用户 lenovo本机已安装 OpenSSH Server。
一、目录与文件
- FRP 程序目录C:\frp\
- frpc.exe
- frpc.ini客户端配置
- start_frpc.bat后台启动脚本
- SSH 密钥:
- 私钥C:\Users\lenovo\.ssh\666
- 公钥C:\Users\lenovo\.ssh\666.pub
- 管理员授权公钥C:\ProgramData\ssh\666_keys
二、frpc.ini 内容(当前生效)
[common]
server_addr = 13.14.223.23
server_port = 1234
token = 123456
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 12345
三、启动与自启
1) 手动前台验证(可选)
PowerShell
cd C:\frp
.\frpc.exe -c frpc.ini
2) 后台快捷启动
双击 C:\frp\start_frpc.bat
3) 开机自启(简单方式)
将 start_frpc.bat 复制到启动文件夹:
C:\Users\lenovo\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup
下次登录自动后台启动。
四、SSH 连接方式
- 终端命令:
ssh -i "C:\Users\lenovo\.ssh\666" -p 12345 lenovo@13.14.223.23
- Termius 填写:
Host 13.14.223.23
Port 12345
User lenovo
Key 选择 C:\Users\lenovo\.ssh\666无口令
五、权限与安全
- 私钥权限已限制为 lenovo、SYSTEM 可读。
- sshd 已关闭密码登录PasswordAuthentication no仅密钥。
- 管理员组用户使用 C:\ProgramData\ssh\666_keys 作为授权列表。
六、常用检查
- 查看 frpc 运行:任务管理器或
netstat -ano | findstr 1234
- 查看 frpc 日志WSL 版,如需):/tmp/frpc-wsl.log
- 测试 SSH上面的 ssh 命令返回 ok 即通。
七、故障排查速查
- "Permission denied (publickey)":
* 确认 666 公钥在 C:\ProgramData\ssh\666_keys
* 确认私钥路径/权限正确。
- "Connection refused": frps 未运行或端口 1234/12345 未放行。
- frpc 未连接:前台运行 frpc 查看提示,或检查 frpc.ini 中 server_addr、token 是否匹配。
Termius手机端连接步骤
1. 创建主机
- Host (Address): 13.14.223.23
- Port: 12345
- Label 可自定义(如 FRP-Home
2. 认证方式选择 Key
- 在 Authentication 选择 Key
- 点击 Import Key或“从文件/粘贴”)
- 将本机私钥 666 的内容导入(建议用安全方式传到手机,再粘贴;如果 Termius 支持从文件导入,选该文件)。
私钥内容在 PC 路径C:\Users\lenovo\.ssh\666纯文本-----BEGIN OPENSSH PRIVATE KEY----- 开头)。
- Passphrase 留空(此钥无口令)。
3. 用户名
- Username: lenovo
4. 保存并连接
- 首次连接接受指纹提示即可。
5. 可选安全措施
- 在 Termius 中为该私钥设置本地加密密码App 层保护)。
- 若不方便复制私钥,可生成移动端新钥,并将其公钥追加到 C:\ProgramData\ssh\666_keys但目前 666 已可用,按上面导入即可。
一键启动命令(在当前管理员 PowerShell 执行)
# 放行、防解除阻 & 直接前台启动
Add-MpPreference -ExclusionPath "C:\frp"
Unblock-File C:\frp\frpc.exe
cd C:\frp
.\frpc.exe -c frpc.ini
如果想后台启动(不占窗口):
cd C:\frp
Start-Process -FilePath ".\frpc.exe" -ArgumentList "-c frpc.ini" -WindowStyle Hidden
需要开机自启(最高权限):
schtasks /Create /TN "FRPClient" /TR "C:\frp\frpc.exe -c C:\frp\frpc.ini" /SC ONLOGON /RL HIGHEST /F /RU lenovo