【内网穿透】访问内网服务器并配置远程开发环境

访问内网服务器并配置远程开发环境

一、背景

人在外网,想要使用的主机在内网,而学校提供的VPN是网页端,非常不好用。

使用远程桌面软件会有收费问题且不能保证安全。

解决方案就是用FRP搭建一个穿透服务器,通过内网穿透进行访问。

成本是一个公网服务器,可以使用最低档的学生机。

二、环境

  • A:内网中的机器
  • B:公网上的云服务器
  • C:自己手边的主机

三、配置工作

需要在A机器和B服务器上进行配置

A内网机器

1. 下载frp

下载并解压frp(以linux x86为例),这里使用0.46.0版本作为演示。

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

移动到local文件夹下

sudo mv frp_0.46.0_linux_amd64 /usr/local/frp
cd /usr/local/frp
2. 修改配置文件

编辑器打开frpc.ini配置内网机器

sudo vim frpc.ini

必须修改项:
server_addr:为公网机器B的IP地址

可选修改项:
server_port为公网机器B用来连接A的开放端口
remote_port为用户C用来连接A时的端口

[common]
server_addr = x.x.x.x
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
3. 注册服务

注册为系统服务,这样就不用每次都手动运行了。

sudo vim /usr/lib/systemd/system/frpc.service

粘贴下面内容

[Unit]
Description=frp cilent
After=network.target

[Service]
Type=simple
ExecStart=/usr/local/frp/frpc -c /usr/local/frp/frpc.ini
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID

[Install]
WantedBy=multi-user.target
4. 启动服务
sudo systemctl enable frpc
sudo systemctl start frpc
sudo systemctl status frpc

正常的话,应该会是active状态,即为配置成功

B公网服务器

1. 下载frp

前面步骤和A一样

wget https://github.com/fatedier/frp/releases/download/v0.46.0/frp_0.46.0_linux_amd64.tar.gz
tar -xvzf frp_0.46.0_linux_amd64.tar.gz
sudo mv frp_0.46.0_linux_amd64 /usr/local/frp
cd /usr/local/frp
2. 修改配置文件(可跳过)

编辑器打开frps.ini配置frp服务器

sudo vim frps.ini

可选修改项:
bind_port为公网机器B用来连接A的开放端口,和之前配置的server_port一致

[common]
bind_port = 7000
3. 注册服务

注册为系统服务,这样就不用每次都手动运行了。

sudo vim /usr/lib/systemd/system/frps.service
[Unit]
Description=frp server
After=network.target

[Service]
Type=simple

ExecStart=/usr/local/frp/frps -c /usr/local/frp/frps.ini
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID

[Install]
WantedBy=multi-user.target
4. 启动服务
sudo systemctl enable frps
sudo systemctl start frps
sudo systemctl status frps

正常的话,应该是active状态。

5. 开启防火墙

在云服务器的防火墙规则里开放之前配置的remote_port和bind_port端口,默认是6000和7000。

四、连接

在主机C上使用ssh连接A,
user为A的用户名,ip地址为B的公网ip,-p后为frpc中的remote_port

ssh user@x.x.x.x -p6000

效果:使用vscode中的ssh远程连接、端口转发
使用vscode中的ssh远程连接、端口转发

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值