frp+nomachine远程访问内网主机
frp+nomachine部署
准备工作
服务端配置
-
部署frps
# frps.ini [common] bind_port = 9919 # 授权码 frpc也要设置 token = 1007 dashboard_port = 9920 dashboard_user = user dashboard_pwd = pwd log_file = /var/log/frps.log log_level = info log_max_days = 7 # 认证超时时间 authentication_timeout = 1000 # 最大连接数 max_pool_count = 20
./frps -c ./frps.ini
如果碰到权限问题,尝试chmod +x frps
,自行解决 -
持久化frps
这里注册为system service,可以选择docker方案,dockerhub上有构建好的docker
vim /usr/lib/systemd/system/frps.service
[Unit] Description=frps service After=network.target syslog.target Wants=network.target [Service] Type=simple ExecStart=/path/frps -c /path/frps.ini [Install] WantedBy=multi-user.target
保存后,执行以下命令
sudo systemctl enable frps.service sudo systemctl start frps.service sudo systemctl status frps.service #如果对service文件进行了修改,则需要先执行以下命令 sudo systemctl daemon-reload
-
云服务控制面板开放对应端口,如果操作无误,访问管理后台即可
内网主机配置
windows类似,选择frp作者提供不同架构的发行版即可
-
部署frpc
# frpc.ini [common] server_addr = server_addr server_port = 9919 token = 1007 [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 9922 [nomachine_tcp] type = tcp local_ip = 127.0.0.1 local_port = 9923 remote_port = 9923 [nomachine_udp] type = udp local_ip = 127.0.0.1 local_port = 9924 remote_port = 9924 [rdp] type = tcp local_ip = 127.0.0.1 local_port = 9921 remote_port = 9921
-
持久化frpc,与上述操作类似
vim /usr/lib/systemd/system/frpc.service
[Unit] Description=frpc service After=network.target syslog.target Wants=network.target [Service] Type=simple ExecStart=/path/frpc -c /path/frpc.ini [Install] WantedBy=multi-user.target
保存后,执行以下命令
sudo systemctl enable frpc.service sudo systemctl start frpc.service sudo systemctl status frpc.service #如果对service文件进行了修改,则需要先执行以下命令 sudo systemctl daemon-reload
在测试的时候,笔者碰到一个问题:虽然配置了after network,但frpc.service还是碰到了网络问题,无法联通server,导致自启失败,通过加timer触发解决
vim /etc/systemd/system/frpc.timer
[Unit] Description=frpc boot up timer [Timer] OnBootSec=1min Unit=frpc.service [Install] WantedBy=timers.target
保存后,执行以下命令
sudo systemctl enable frpc.timer #如果对service文件进行了修改,则需要先执行以下命令 sudo systemctl daemon-reload
-
收尾工作
- 被控主机安装nomachine,修改tcp、udp端口号为frpc中的对应端口号
- 被控主机开放对应端口,云服务器开放对应端口
- 设置中设置自动登录
终端操作
-
远程桌面
-
远程终端安装nomachine,填写服务器公网ip,对应端口为tcp_remote_port,用户名密码即为被控主机用户密码
-
得到许可后进入桌面环境
-
-
ssh转发
ssh -p remote_port user@server_addr