• Frp内网穿透win系统实录


    前言

    由于实验室的某些原因,分配了一台win10的服务器(QAQ),但是由于服务器在内网,无法访问。因此采用了内网穿透了一波,和上回内网穿透相比,这回配置win10内网是真的头大,而且还存在几个Bug,有待完善/(ㄒoㄒ)/~~。上回linux下的内网穿透可以参考之前这篇博客
    基于Docker的Frp内网穿透部署

    先简单说一下配置

    • 客户端:自己笔记本,win10系统
    • 内网服务器:win10系统
    • 外网服务器:ubuntu10.04

    公网服务器端配置

    首先,需要先租台服务器,这里随便租了台腾讯云的服务器,不是打广告

    之后,就需要开始frp配置了,这里有两种配置方式,2选1即可

    基于Docker配置

    注意

    • 这里没有配置Docker的小伙伴可以食用这篇博客Ubuntu安装docker教程
    • 需要放行相应端口(可以直接图形化界面放行,也可以命令行形式放行,请自行百度)

    1.创建文件

    # 创建存放目录
    sudo mkdir /etc/frp
    # 创建frps.ini文件
    sudo vi /etc/frp/frps.ini
    

    2.编写frps.ini文件内容

    [common]
    # 监听端口
    bind_port = 7000
    # 面板端口
    dashboard_port = 7500
    # 登录面板账号设置,就是网上说的公网:IP的账号和密码
    dashboard_user = admin  #根据所需设置,我在这里设置为服务器的账号密码
    dashboard_pwd = XXXXXXX 
    # 设置http及https协议下代理端口(非重要)
    vhost_http_port = 7080
    vhost_https_port = 7081
    
    # 身份验证,可以自己设置,建议设置复杂点。
    token = 12345678
    

    3.运行代码

    sudo docker run --restart=always --network host -d -v /etc/frp/frps.ini:/etc/frp/frps.ini --name frps snowdreamtech/frps
    

    简单文件配置

    1.首先创建一个frp文件夹(没啥实际作用,就是看得整洁)

    mkdir frp
    

    2.下载frp文件

    下载地址:https://github.com/fatedier/frp/releases

    wget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz 
    tar -zxvf frp_0.33.0_linux_amd64.tar.gz
    

    也可以自己选择下载版本,右键复制下载地址即可,然后在前面键入wget命令,如上方所示

    在这里插入图片描述
    3.修改frps.ini文件

    cd frp_0.33.0_linux_amd64
    vi frps.ini
    
    [common]
    # 监听端口
    bind_port = 7000
    # 面板端口
    dashboard_port = 7500
    # 登录面板账号设置
    dashboard_user = admin  #根据所需设置,我在这里设置为服务器的账号密码
    dashboard_pwd = XXXXXXX 
    # 设置http及https协议下代理端口(非重要)
    vhost_http_port = 7080
    vhost_https_port = 7081
    
    # 身份验证,可以自己设置,建议设置复杂点。
    token = 12345678
    

    4.启动服务

    ./frps -c frps.ini
    

    貌似也可以后台启动或者开机自动启动的命令,有需要的小伙伴可以百度查看。

    内网服务器端配置

    frpc配置

    1.下载frp压缩包

    我们需要下载同样版本的frp压缩包

    下载网址:https://github.com/fatedier/frp/releases

    直接下载在本地就可以

    在这里插入图片描述
    2.配置frpc.ini文件

    [common]
    tls_enable = true 
    # server_addr为FRPS服务器IP地址
    server_addr =X.X.X.X
    # server_port为服务端监听端口,bind_port
    server_port = 7000
    # 身份验证
    token = 12345678
    
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 2288
    

    3.启动服务

    启动服务的命令

    frpc.exe -c frpc.ini
    

    注意
    在后面可能会出现这样的Bug:Create server listener error, listen tcp 0.0.0.0:7000: bind: address already,需要杀死到frp的进程

    netstat -tanlp
    

    找到端口所占进程的pid,杀死掉

    kill -9 PID
    

    参考资料:Create server listener error, listen tcp 0.0.0.0:7000: bind: address already

    安装OpenSSH服务

    OpenSSH原理补充

    想直接安装的小伙伴可以跳过图示部分,直接进行安装。

    具体免密SSH连接的原理就如下图所画内容所示。

    -**

    OpenSSH原理补充(结束)

    配置完成以上内容后,以为可以直接连接服务器,但是出现了Connnection failed的错误,后来百度一波发现WIN系统需要配置OpenSSH.
    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述
    完成OpenSSH的添加。
    之后就要进一步设置

    计算机右键->管理->服务->OPENSSH SERVER&&OPENSSH Authentication
    

    改图引用资料:https://www.cnblogs.com/kxqblog/p/16080477.html

    在这里插入图片描述

    配置连接

    先在本地(客户端)生成公钥,当然,本地也是需要安装openssh的,在cmd下执行下面的命令。

    注意:本地(客户端)指的是我的笔记本电脑

    ssh-keygen -t rsa
    

    一路回车即可

    接着,在笔记本电脑中C:\Users\Administrator\.ssh进入到C盘,可以看到以下文件

    在这里插入图片描述
    到服务端C:\Users\Administrator\.ssh创建authorized_keys(没有后缀)文件。然后将密钥的文件内容复制到authorized_keys中。

    在这里插入图片描述
    紧接着,到服务器的C:\ProgramData\ssh,打开sshd_config文件进行修改。

    找到 #StrictModes yes 改成 StrictModes no
    
    确保以下3条没有被注释
    PubkeyAuthentication yes
    AuthorizedKeysFile	.ssh/authorized_keys
    PasswordAuthentication yes #表示开启密码登录
    
    这里注意,如果用私钥登录则注释掉前一句的PasswordAuthentication yes
    
    确保以下2条有注释掉
    #Match Group administrators
    #       AuthorizedKeysFile __PROGRAMDATA__/ssh/administrators_authorized_keys
    
    #设置访问盘符
    ChrootDirectory C:\
    

    之后就重启服务

    net stop sshd
    net start sshd
    

    再次运行即可

    frpc.exe -c frpc.ini
    

    XShell和Xftp连接

    最为简单的连接是cmd黑窗口的形式进行连接,但是这样就不能同时管理多个服务器。同时由于首次接触到免密的登入,还是有点懵,因此简单记录一下。

    • 先记录一下SSH连接
    ssh -p 2288 公网IP # -o StrictHostKeyChecking=no(可加可不加,当时是出现了一个bug加的这个选项 )
    
    • XShell连接
      1.新建会话
      在这里插入图片描述
      在这里插入图片描述
      浏览-》用户密钥
      在这里插入图片描述
      选择导入,到本地的C:\Users\Administrator\.ssh的公钥导入即可连接

    • Xftp
      Xftp的连接方式和XShell的使用方式相同,因此不再记录。

    最后的最后,存在的Bug.代填坑

    • Xftp貌似只能访问ChrootDirectory 指定的盘符(因此我将盘符设置为C盘,话说之前配置linux系统都没出现这种问题QAQ)

    由于本人是前几天配置的服务,隔天写的文章,全靠回忆,如果错误的地方也有待改进QWQ

    推荐参考资料:
    ✳✳✳https://www.cnblogs.com/kxqblog/p/16080477.html

  • 相关阅读:
    实现艾尔登法环中的大卢恩效果
    SpringBoot知识点总结-DX的笔记
    Tailwind CSS浅析与实操
    小程序配置请求代理
    会话管理
    面试必备:《Java 最常见 200+ 面试题全面解析》
    qcustemplot使用opengl加速
    有趣的前端面试题
    【Python3】【力扣题】258. 各位相加
    KafkaQ - 好用的 Kafka Linux 命令行可视化工具
  • 原文地址:https://blog.csdn.net/weixin_42888638/article/details/127097760