文章目录
- 前言
- 公网服务器端配置
- 基于Docker配置
- 简单文件配置
- 内网服务器端配置
- frpc配置
- 安装OpenSSH服务
- 配置连接
- XShell和Xftp连接
前言
由于实验室的某些原因,分配了一台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服务
配置完成以上内容后,以为可以直接连接服务器,但是出现了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