♪⁶ 相关信息
阿里云服务器地址:
47.117.xxx.xxx
frp下载地址:
https://github.com/fatedier/frp
官方教程文档:
https://gofrp.org/zh-cn/docs/examples/ssh/
♪⁶ 配置ssh和Minecraft服务器
配置过程:
1.将release中的包下载下来
其中frpc和frpc.toml放入本地客户端
frps和frps.toml放入云服务器
通过./frpc -c ./frpc.toml即可运行
2.修改frps.toml和frpc.toml
frps.toml通常只需要写上bindPort = 7000即可
frpc.toml的内容如下:
下面写入了远程ssh功能和Minecraft服务器功能的配置
toml1serverAddr = "47.117.xxx.xxx"2serverPort = 700034[[proxies]]5name = "ssh"6type = "tcp"7localIP = "127.0.0.1"8localPort = 229remotePort = 6000 # 阿里云映射端口1011[[proxies]]12name = "minecraft"13type = "tcp"14localIP = "127.0.0.1"15localPort = 2556516remotePort = 25570 # 阿里云映射端口17
其中远程映射端口还需要在阿里云的控制台中手动开放
3.直接通过启动命令启动,或者使用systemd创建服务启动
创建frps服务:
- 使用文本编辑器 (如 vim) 在
/etc/systemd/system目录下创建一个frps.service文件,用于配置 frps 服务。
命令:sudo vim /etc/systemd/system/frps.service - 写入内容:
toml1[Unit]2# 服务名称,可自定义3Description = frp server4After = network.target syslog.target5Wants = network.target67[Service]8Type = simple9# 启动frps的命令,需修改为您的frps的安装路径10ExecStart = /path/to/frps -c /path/to/frps.toml1112[Install]13WantedBy = multi-user.target14
- 管理systemd服务的相关命令:
bash1# 启动frp2sudo systemctl start frps3# 停止frp4sudo systemctl stop frps5# 重启frp6sudo systemctl restart frps7# 查看frp状态8sudo systemctl status frps9# 设置开机自启动10sudo systemctl enable frps11
- 使用ssh命令连接内网穿透的远程内网主机:
该命令在vscode的remote-ssh插件中也可使用
bash1ssh -p 6000 eden@47.117.xxx.xxx2# 或使用域名3ssh -p 6000 eden@edenx.me4
♪⁶ 配置Web服务器
frps.toml中改为:
toml1bindPort = 70002vhostHTTPPort = 80803
在阿里云上设置nginx反向代理frp
创建/etc/nginx/conf.d/frp_proxy.conf
写入:
nginx1server {2 listen 80;3 server_name edenx.me;45 location / {6 proxy_pass http://127.0.0.1:8080;7 proxy_set_header Host $host;8 proxy_set_header X-Real-IP $remote_addr;9 }10}11
执行 sudo systemctl reload nginx重新加载
客户端中,frpc.toml添加以下条目
toml1[[proxies]]2name = "hexoTest"3type = "http"4localIP = "127.0.0.1"5localPort = 40006customDomains = ["edenx.me"]7
重启即可
启用https
服务器上frps.toml添加
vhostHTTPSPort = 443
frpc客户端toml添加:
toml1[[proxies]]2name = "test_htts2http"3type = "https"4customDomains = ["test.yourdomain.com"]56[proxies.plugin]7type = "https2http"8localAddr = "127.0.0.1:4000"910# HTTPS 证书相关的配置11crtPath = "./server.crt"12keyPath = "./server.key"13hostHeaderRewrite = "127.0.0.1"14requestHeaders.set.x-from-where = "frp"15
证书参考下一节
♪⁶ 配置Web管理页面,添加安全证书等
frps.toml中添加:
toml1webServer.addr = "0.0.0.0"2webServer.port = 75003# dashboard 用户名密码,可选,默认为空4webServer.user = "admin"5webServer.password = "admin"67webServer.tls.certFile = "server.crt"8webServer.tls.keyFile = "server.key"9
阿里云生成的TLS证书有三个文件:
edenx.me_chain.crt edenx.me.key edenx.me_public.crt
crt使用top_public才能使用
客户端toml配置中添加:
toml1webServer.addr = "127.0.0.1"2webServer.port = 74003webServer.user = "admin"4webServer.password = "admin"56[[proxies]]7name = "admin_ui"8type = "tcp"9localPort = 740010remotePort = 7400 # <--这里端口确实是填这个,不知道为什么,但访问还是750011
♪⁶ 为ssh连接添加免密登陆
在任意终端输入ssh-keygen -t rsa -b 4096 -C "your@email.com"
邮箱改成自己的就行了
这时候会生成两个文件:
id_rsa 和 id_rsa.pub
其中id_rsa是私钥,id_rsa.pub是公钥
将公钥放在内网被连接主机的~/.ssh/ 目录下
私钥放在自己机器的.ssh/目录下,若是Windows系统,则是C:/Users/XXX/.ssh目录
在目标主机中修改ssh配置
bash1sudo nano /etc/ssh/sshd_config2
修改以下内容:
bash1PubkeyAuthentication yes2AuthorizedKeysFile .ssh/authorized_keys3PasswordAuthentication no # 可选,禁用密码登录4PermitRootLogin no # 可选,禁用 root 登录5
之后重启:
bash1sudo systemctl restart ssh2
在外部测试登陆
bash1ssh -i ~/.ssh/id_rsa -p 6000 user@edenx.me2
可以实现免输入密码
在vscode中修改
修改~/.ssh/config文件,添加
ssh1Host my-home2 HostName edenx.me3 Port 60004 User your_user5 IdentityFile ~/.ssh/id_rsa6
即可在vscode中也实现免密登陆

