本文将详细描述该如何进行内网穿透,需要提前准备的是一台公网服务器,推荐腾讯云,有学生机,阿里云最近找不到学生优惠了,不过新用户好想和学生机价格一样,华为云着实有点拉垮,在腾讯云有学生机的前提下不推荐,域名可有可无,直接用ip登陆即可

内网穿透

首先,我们先来配置内网穿透,我们使用的工具为frp,百度可以得到教程,我看的教程如下

https://blog.csdn.net/u013144287/article/details/78589643

其中的描述很详细,为了方便查阅,将主要命令复制在这里,并将内容改成我配置时的命令

准备

  1. 公网服务器与内网服务器都需要下载frp进行安装,公网服务器(服务端)配置关注步骤6,内网服务器(客户端)关注步骤7
  2. 下载地址是https://github.com/fatedier/frp/releases,下载linux版本frp_0.38.0_linux_amd64.tar.gz
  3. 新建目录mkdir -p ~/frp,上传frp_0.38.0_linux_amd64.tar.gz至linux服务器该目录下
  4. 解压tar -zxvf frp_0.38.0_linux_amd64.tar.gz
  5. 进入解压目录cd frp_0.38.0_linux_amd64,这里主要关注4个文件,分别是frpc、frpc.ini和frps、frps.ini,前者两个文件是客户端所关注文件,后者两个文件是服务端所关注两个文件

配置服务端(公网服务器)

首先删掉frpc、frpc.ini两个文件,然后再进行配置,vim ./frps.ini,

[common]
bind_port = 7000           #与客户端绑定的进行通信的端口
vhost_http_port = 6081     #访问客户端web服务自定义的端口号

保存然后启动服务./frps -c ./frps.ini,这是前台启动,后台启动命令为nohup ./frps -c ./frps.ini &

配置客户端(内网服务器)

首先删掉frps、frps.ini两个文件,然后再进行配置,vim ./frpc.ini

[common]
server_addr = 81.68.225.110   
#公网服务器ip
server_port = 7000            
#与服务端bind_port一致
 
#公网通过ssh访问内部服务器
[ssh]
type = tcp              
#连接协议
local_ip = 10.130.2.160
#内网服务器ip
local_port = 22         
#ssh默认端口号
remote_port = 6000      
#自定义的访问内部ssh端口号
 
#公网访问内部web服务器以http方式
[web]
type = http         
#访问协议
local_port = 8099
#内网web服务的端口号
custom_domains = www.yukinoo.site   
#所绑定的公网服务器域名,一级、二级域名都可以

保存然后执行./frpc -c ./frpc.ini启动,这是前台启动,后台启动命令为nohup ./frpc -c ./frpc.ini &,需要注意的是[web]中的local_port需要改一下,因为8099被我占用了,改一个没有人用过的即可

访问方式

  1. 外网ssh访问内网服务器(直接使用配置里面数据演示)

ip:81.68.225.110或www.yukinoo.site
port:6000
用户名:linux服务器的用户
密码:linux服务器的密码

  1. 自定义绑定域名访问内网web服务(直接使用配置里面数据演示)

此部分我们不需要,因为服务器没有web服务

repo.iwi.com:6081

保证服务器安全

上次服务器被人暴力破解,主要原因在于我们自己的疏忽,不识江湖险恶,弄好内网穿透后,没有做好安全措施。于是,我想出了以下两种方法以保证服务器的安全

强密码+私钥登陆

首先,更改自己的密码,将密码设置为超强的密码,最好包括数字、字母大小写、字符,且具有一定的长度

设置好强密码后,登陆有可能会不方便,我们可以设置密钥登陆,百度可以查到教程,比如

https://www.cnblogs.com/wenxingxu/p/9597307.html

我们生成的id_rsa和id_rsa.pub分别是私钥和公钥,私钥要保存好,只需要将私钥放到自己用户主目录的.ssh文件夹中即可免密登陆,linux和macos用户需要注意权限是否为600,否则使用以下命令进行更改

chmod 600 id_rsa

关于MobaXterm如何使用密钥登陆,请看截图

设置防火墙

我们使用的公网服务器一般为阿里云、腾讯云、华为云等国内的云服务,在配置好后需要在防火墙开放端口,之前开放端口时,没有设置访问限制,导致ip都可以接入进来,所以我们需要让端口只对我们自己的ip开放,以上面使用的6000端口为例

首先,获取自己的ip地址,有两种方法,一是直接用百度搜索ip,即可获得本机ip地址

该方法一般是准确的,但是有时候会出问题,尤其是在使用校园网的时候,虽然在学校不需要使用内网穿透,但是为了以防万一,或者使用别的学校的校园网,将另一种方法也写在这

我们先对所有ip开放6000端口,然后连接内网服务器,这时公网服务器就会记录下接入6000端口的ip是多少,使用nohup后台登录的可以查找nohup.out,使用vim打开的可以shift+G到文件底部,未使用nohup的话应该可以在窗口中查到

获得ip后,在云服务的防火墙中配置即可,以我使用的腾讯云为例,进行如下配置即可

总结

内网穿透是没有问题的,有问题的是挖矿的人,我们无法解决挖矿的人,所以只好做好防护,以上两种方法,最主要的是配置好防火墙,不要让所有人都能访问到服务器,因为你只能保证自己的密码很强,其他人的密码可能还没有更改,此点一定要注意,不然还是有出现问题的可能

最后,愿世间再无挖矿,聪门