从零开始打造远程开发环境
背景
有一台处于内网的 Ubuntu Desktop 远程开发机,需要通过 VS code、VNC viewer 等工具连接。
为 root 指定密码
第一次使用 su
命令前需要为 root 指定密码。
sudo password root
安装 SSH server
apt update && apt install openssh-server
VS Code 远程登陆
参考:https://juejin.cn/post/6867728457904685069
VNC 远程登陆
参考:https://blog.csdn.net/lucky7213/article/details/107008246
内网穿透
开源项目 frp 提供了内网穿透解决方案。docker 版本更易用。
下面以 SSH 场景为例,借助一台具有公网 IP 的服务器,可以不用再挂 VPN 访问处于内网的服务器。
角色:
A:内网服务器
B:公网服务器
C:个人电脑
在 B 新建/etc/frp/frps.ini
,内容如下:
[common]
bind_port = 7000
在 A 新建 /etc/frp/frpc.ini
,内容如下:
[common]
server_addr = X.X.X.X
server_port = 7000
tls_enable = true
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
B 运行:
docker run --restart=always --network host -d -v /etc/frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps
A 运行:
docker run --restart=always --network host -d -v /etc/frp/frpc.ini:/etc/frp/frpc.ini --name frpc snowdreamtech/frpc
然后,可以在 C 上运行
ssh -oPort=6000 user_in_A@addr_of_B
将 B 作为跳板访问 A。
需要注意的是,一个 frps 对应一个 frpc,多个主机内网穿透需求需要起多个 frps 容器,并注意分配不同端口。