Linux-在Linux环境下使用frp实现内网穿透(SSH)

  内网穿透:通过互联网,访问内网的资源,让内网的数据在外网的电脑上可以获取。

  本文部署场景:Linux工作站部署在办公室中,可以连外网,但是没有公网IP,只能在办公室内局域网通过SSH连接。使用内网穿透后,可以在非办公室的外网,连接此工作站。

  工具:frp(建议:Sakura Frp — 免费内网穿透_免费端口映射_高速_高防节点_不限流量_Minecraft我的世界_微信开发调试_群辉NAS_无需公网_免备案 (natfrp.com)

  进入软件下载页面,选择“Linux系统 -> amd64 -> 下载”(除非你使用的是其他架构的工作站,需要选择对应工作站架构的文件)。将下载的文件放到“/usr/local/bin/”中(也可以放到其他文件夹中,可能会影响配置开机自启)

  1. 创建隧道

  在“管理面板 -> 穿透 -> 隧道列表”中新建隧道,选择合适的节点和隧道类型(此处使用TCP)

  本地ip默认使用127.0.0.1,本地端口选择SSH(22),需要先确认本地服务器已经安装了ssh-server以及打开了22端口。

  创建完成后,在管理页面即可看到创建号的隧道。

  2.1 本地开启隧道(GUI)

./frpc_linux_amd64

  在 frpc.ini 不存在的情况下,不带参数直接运行 frpc 会出现一个交互式 UI

 

   输入访问密钥,然后使用 Tab 键切换到 Login 按钮并按 回车 键登录 (若终端支持也可使用鼠标进行操作)。访问密钥在“管理面板”的首页中的“账号信息”右侧。

 

   选择完毕后,按 Ctrl-C 即可启动隧道,相关启动参数会被保存到配置文件 frpc.ini 中,下次不带参数直接运行 frpc 时不再显示 TUI 而是直接启动隧道

  2.2 本地开启隧道(命令行)

frpc -f <访问密钥>:<隧道ID>

  隧道ID可以在管理页面查看

  3. 远程连接

  隧道启动成功后回提供IP地址或网址的方式连接隧道

  

 

  在xshell中输入对应信息,即可在外网访问本地的工作站。

  或使用CMD:ssh -p xx user@ip xx 为 端口号 user为用户名 ip为要登陆的ip

  可能出现的问题:

  1) frpc客户端连接会提示 login to server failed: EOF

  解决办法

  打开frpc所在文件夹中的frpc.ini

  输入 tls_enable = true

  此命令为frpc 开启 TLS 加密功能,但是默认不校验 frps 的证书。

  2) 登录节点失败: read tcp ***: read: connection reset by peer, 请检查网络连接

  更改

  disable_custom_tls_first_byte = true

   4. 开机自启
  需要将frpc注册为系统服务。在使用systemd的系统中,执行命令
  
sudo vim /etc/systemd/system/frpc.service

  在该文件中粘贴如下内容

[Unit]
Description=SakuraFrp Service
After=network.target

[Service]
Type=idle
User=nobody
Restart=on-failure
RestartSec=60s
ExecStart=/usr/local/bin/frpc -c /usr/local/bin/frpc.ini

[Install]
WantedBy=multi-user.target

  上述内容要求frpc在/usr/local/bin/frpc,以及frpc.ini需要在同一文件夹下,此外,需要对frpc.ini执行sudo chmod +777命令。

  重载 Systemd

sudo systemctl daemon-reload

  启动/停止隧道

sudo systemctl start frpc
sudo systemctl stop frpc

  隧道开机自启动

sudo systemctl enable frpc

  5. openSSH免密登录

  在本机输入(Windows:CMD/PowerShell)

ssh-keygen -t rsa

  一直按回车,会生成ssh的公钥和私钥:

  id_rsa(私钥)

  id_rsa.pub(公钥)

  将公钥改名为“authorized_keys”,复制到目标主机的/home/username/.ssh中

posted @ 2022-07-11 12:15  流光Light  阅读(4573)  评论(0)    收藏  举报