东营网站建设教程,简单建设网站首页,网站开发是什么,西安市建设工程交易信息网内网穿透
问题#xff1a;什么是内网穿透#xff0c;内网穿透的作用是什么#xff1f;
前提#xff01;#xff01;#xff01;#xff01;你得拥有超级管理员的权限#xff0c;比如root#xff0c;不然后面的一切免提#xff01;
应用场景如下#xff1a;比如你…内网穿透
问题什么是内网穿透内网穿透的作用是什么
前提你得拥有超级管理员的权限比如root不然后面的一切免提
应用场景如下比如你在家你想连接学校的服务器但是因为学校的服务器是局域网172开头的我们在家也是一个局域网不同局域网没办法互连那就需要一个中间人来进行连接我们都可以和这个中间人进行连接所以就需要一个公网IP这样我们在家的电脑和在学校的服务器都可以连接上去让这个中间人为我们传递数据。如下图所示。以下假设的IP地址没有任何实际意义只是作为假设特此声明。
所以引出了内网穿透所需要的资源 1学校服务器的IP地址这里我们假设是上图的172.22.33.44 2公网的IP地址去阿里云租一个新用户免费3个月租ECS服务器租过的话换个手机号就能租个新的了或者买一个学生优惠99一年服务器IP8.138.66.121 3frp内网穿透工具(注意下载的版本以下参考是x86的版本所以下载amd64
现在我们已经拥有公网的IP了学校的服务器和家里的电脑都是联网的所以可以Ping通ECS服务器。现在正式开始配置frp。
1. 服务器端也就是我们租的那台服务器我们用来作为Service端。
sudo apt-get updatewget https://github.com/fatedier/frp/releases/download/v0.53.2/frp_0.53.2_linux_amd64.tar.gztar -zxvf frp_0.53.2_linux_amd64.tar.gz #解压缩tar xvf 文件名cd frp_0.53.2_linux_amd64 #进入解压目录#修改frps.toml文件
sudo vim ./frps.toml添加以下内容
# 设置frps端的监听端口
bindPort 7000下面方法是一次性的关机重启之后就要将服务重新开启。
#在frp_0.17.0_linux_amd64目录下临时启动命令
./frps -c ./frps.toml#后台保持启动
nohup ./frps -c ./frps.toml 故引出开机自启动服务器也就是写一个脚本
sudo vim /etc/systemd/system/frps.service注意ExecStart改为实际的存放路径
[Unit]
# 服务名称可自定义
Description frp server
After network.target syslog.target
Wants network.target[Service]
Type simple
# 启动命令改为实际存放frps的路径
ExecStart /home/frp_0.53.2_linux_amd64/frps -c /home/frp_0.53.2_linux_amd64/frps.toml[Install]
WantedBy multi-user.target# 启动服务
systemctl start frps
# 查看服务状态
systemctl status frps
# 重启服务
systemctl restart frps
# 开机自启动
systemctl enable frps到此为止 服务器端就配置好了该配置客户端也就是我们的学校的服务器需要超级管理员权限再次提醒。
2. 客户端学校的服务器
第一步也是先下载frp但是在客户端使用的是frpc,服务器端是frps
sudo apt-get updatewget https://github.com/fatedier/frp/releases/download/v0.53.2/frp_0.53.2_linux_amd64.tar.gztar -zxvf frp_0.53.2_linux_amd64.tar.gz #解压缩tar xvf 文件名cd frp_0.53.2_linux_amd64 #进入解压目录#修改frps.toml文件
sudo vim ./frpc.toml在frpc.toml中配置文件
serverAddr 8.138.66.121 #我们租到服务器的递增
serverPort 7000 #我们在租到服务器中frps.toml写的监听端口号[[proxies]]
name test-tcp #可以随便取一个但是不要取ssh可能会发生冲突
type tcp #网络连接方式不用改
localIP 127.0.0.1 #不用改
localPort 22 #不同改
remotePort 6000 #不用改6000我们后面会用来连接临时启动
#临时启动
./frpc -c ./frpc.ini#后台保持启动
nohup ./frpc -c ./frpc.toml 开机自启动 同样在ExecStart更改为真实的frp工具存放路径
[Unit]
Descriptionfrpc
Aftersyslog.target network.target
Wantsnetwork.target[Service]
Typesimple
ExecStart/usr/local/frp_0.53.2_linux_amd64/frpc -c /usr/local/frp_0.53.2_linux_amd64/frpc.toml
Restart always
RestartSec1min[Install]
WantedBymulti-user.target# 启动服务
systemctl start frpc
# 查看服务状态
systemctl status frpc
# 重启服务
systemctl restart frpc
# 开机自启动
systemctl enable frpc这样整个过程就配置好了。
3.测试
在我们租阿里云服务器上输入指令下面的User是你要连接的用户名
ssh -p 6000 User127.0.0.1然后输入你用户的密码就可以连接上去了。
4. 应用在Vscode上登录且完成免密登录。
1下载插件Remote-SSH 2然后点击图标如下图 3接着修改配置文件点击小齿轮 4进入配置文件修改配置文件第一个Host需要填我们在阿里云租到服务器的公网IP第二个Host只需要改最后一行的那个数字改为公网IP就行了。
Host 8.138.66.121 HostName 8.138.66.121 User rootPort 22
Host 127.0.0.1HostName 127.0.0.1Port 6000User XXXProxyCommand ssh -W %h:%p 8.138.66.121 5这样我们点击连接127.0.0.1就会连接到我们的服务器了简单来说就是把公网服务器作为跳板跳到了我们的学校的服务器。但是需要输入俩次密码是不是很麻烦
5.免密登录
免密登录需要用到id_rsa.pub这个文件和authorized_keys这个文件 1先免密登录到我们的跳板也就是租的阿里云服务器。将我们本地下生成的id_rsa.pub文件复制到阿里云服务器上如果本地没有就先生成生成代码如下
ssh-keygen -t rsa一般来说会在c:\users\XXX.ssh下出现这个文件。 2复制的方式可以通过终端文件windterm或MobaXterm直接上传或者使用命令scp传输具体scp命令可以自己搜一下反正要将id_rsa.pub复制到阿里云服务器上然后为了防止覆盖authorized_keys文件我们使用拼接的方式如下
cat id_rsa.pub authorized_keys这样我们就实现了免密登录到阿里云服务器完成了第一次飞跃。 3接下来同样的方式完成第二次飞跃将在本地电脑也就是我们第一次复制到阿里云服务器上的id_rsa.pub同样复制到学校服务器上的.ssh文件夹下完成第二步同样的操作。
这样我们就可以免密登录了
6. 需要注意的问题
1如果在下载frp的时候过慢可以在本地下载好在移动到服务器上去因为是在github上下载的 下载链接https://github.com/fatedier/frp/releases。注意需要下载的版本。./frpc: cannot execute binary file: Exec format error就是版本不对确认一下版本。 2自启动脚本的frp工具的实际路径得设置好 3如果阿里云服务器上和学校的服务器上没有.ssh文件可以自己生成生成方式如第五点免密登录的第一步生成后可以删掉原本的id_rsa.pub用我们复制过来的。
7. 引用
[1] https://blog.csdn.net/deng_xj/article/details/88952420 [2] https://zhuanlan.zhihu.com/p/572431267 [3] https://blog.csdn.net/xuzhongyi103/article/details/134363523 [4] https://blog.csdn.net/weixin_43863869/article/details/135042123 [5] https://blog.csdn.net/lixuande19871015/article/details/98613711