下面的文章来自网络,可行性随时间推移、各种软件的依赖和更新而变低。在实现过程中可能还需要自己根据环境编译。
下文总结:
更换了Macbook pro,使用了近5年的Macbook Air终于宣告退役。最近将Air改造成一台私有服务器继续发挥它的价值。
所需要的配置和软件也很简单: 首先是SSH只要在Mac偏好设置>共享>远程管理
中开启即可
由于一般宽带没有公网IP如果需要远程访问有三种方式:
为了节省时间和自己服务灵活性我选择使用frp做内网穿透
- 从frp release 下载对应系统程序 解压后我们在需要做穿透的mac上编辑配置frpc.ini文件:
[common] server_addr = 公网服务器的ip server_port = 7000 admin_addr = 127.0.0.1 admin_port = 7400 token = token tls_enable = true #下面是我需要开启的服务,按自己需求自定义
[ssh]
type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 远程访问端口
[mysql]
type = tcp local_port = 3306 remote_port = 远程访问端口
[postgres]
type = tcp local_port = 5432 remote_port = 远程访问端口
[mongo]
type = tcp local_port = 27017 remote_port = 远程访问端口
[jenkins]
type = tcp local_port = 9090 remote_port = 远程访问端口
[jupyter]
type = tcp local_port = 8888 remote_port = 远程访问端口
[aria2]
type = tcp local_port = 6800 remote_port = 远程访问端口 复制代码
这里我在Air上穿透了测试数据库,并将一些服务(jenkins,jupyter)从原有的云服务器中转移到Air上减少资源占用,还开启的aria2下载工具,这样可以随时随地远程下载文件到我的Air中
配置完成后在终端运行
开启服务 ./frpc -c frpc.ini
接下载同样在有公网IP的服务器上下载客户端,编辑frps.ini,配置相对简单
[common] bind_port = 7000 allow_ports = 需要穿透的端口,对应frpc的remote_port token = 对应frpc的token 复制代码
同样在服务端运行
./frps -c frps.ini
这时就实现了内网穿透,Air已经基本是一台服务器了
这时还需要两个软件让Air变成完全体,就是 supervisor 和 noSleep
在终端和公网服务器停掉之前运行的frpc和frps
Supervisor一个进程管理工具,它可以很方便的监听、启动、停止、重启一个或多个进程。用Supervisor管理的进程,当一个进程意外被杀死,supervisort监听到进程死后,会自动将它重新拉起,很方便的做到进程自动恢复的功能。
Supervisor的安装方式有很对这里不再赘述
安装完成后在配置文件夹下(一般是/supervisor.d/)
touch frp.ini
或 frp.conf
具体使用那个后退需要在/etc/supervisord.conf中最后一行查看也可自行修改配置路径
[include] files = /etc/supervisor.d/*.conf 复制代码
编辑frp.conf
[program:frpc] command=/Users/***/frp_0.28.2_darwin_amd64/frpc -c /Users/***/frp_0.28.2_darwin_amd64/frpc.ini user=you mac username autostart=true autorestart=true startsecs=30 startretries=5 复制代码
保存后运行 supervisorctl update
更新配置
supervisorctl status
查看运行状态
这时当你的电脑重启或frp意外停止supervisor都会帮你重新启动frp
在公网服务器同样安装supervisor,添加配置frps.conf
[program:frps] command=/etc/frp/frps -c /etc/frp/frps.ini user=you ubuntu username autostart=true autorestart=true startsecs=30 startretries=5 复制代码
执行
supervisorctl update
这时通过
ssh 公网user@公网IP -p 6000
就可以访问你的内网Air了,如果你还穿透了其他服务如jenkins remote_port = 19090,使用
公网ip:19090
就可以访问到Air中运行的jenkins服务
在实际使用过程中发现就算偏好设置>节能设置
为永不休眠,盒盖也会发生断网情况,所以下载noSleep并运行可以保持Air待机状态,这样就算合盖可以顺畅访问Air了。
Air这时就是一台带有公网IP的服务器了,想做什么就可以自由发挥了。