Loading

frp+nomachine远程访问内网主机

frp+nomachine部署

准备工作

  1. 一台有公网ip的云服务器

  2. 内网主机

    本次搭载Ubuntu18.04

  3. Frp

    下文还是旧版ini配置,作者使用v0.48.0

  4. nomachine

    也可以选择rdp和vnc

服务端配置

  1. 部署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,自行解决

  2. 持久化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
    
  3. 云服务控制面板开放对应端口,如果操作无误,访问管理后台即可

    image-20231226185813806

内网主机配置

windows类似,选择frp作者提供不同架构的发行版即可

  1. 部署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
    
  2. 持久化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
    
  3. 收尾工作

    • 被控主机安装nomachine,修改tcp、udp端口号为frpc中的对应端口号
    • 被控主机开放对应端口,云服务器开放对应端口
    • 设置中设置自动登录

终端操作

  • 远程桌面

    1. 远程终端安装nomachine,填写服务器公网ip,对应端口为tcp_remote_port,用户名密码即为被控主机用户密码

    2. 得到许可后进入桌面环境

  • ssh转发

    ssh -p remote_port user@server_addr

运维

  • 文件传输

    大文件推荐从被控主机直接访问网络下载,小文件可以通过nomachine的文件传输功能或者sftp。ssh客户端推荐electerm

  • 添加用户,通过adduser添加

  • machine多个用户GUI访问,免费版不支持,如果有相关需求还是考虑rdpwrap

posted @ 2023-12-26 19:31  AmorFati404  阅读(469)  评论(0)    收藏  举报