搞机之内网穿透

0x00 写在前面

物理机携带不方便怎么办?买云服务器!

云服务器配置不够怎么办?加钱!

钱不够怎么办?搞机!

简单记录一下笔者使用 云服务器 + frp + mini 主机 搭建高配置 “云” 服务器的过程。

0x01 前置条件

首先随便去某个云服务商处购买一个带有公网 IP 的云服务器,配置随意,最低配都行,搞活动的时候挺便宜的。按照网上的说法,也可以去找网络运营商要一个公网 IP ,但是因为笔者有一个现成的带公网 IP 云服务器,所以没走这条路,以后有需要了再探再报。

然后就是准备一个物理机,mini主机也好,常规主机也罢,甚至你可以手搓一个:)

0x02 frp 的安装及配置

frp 是我们用来穿透的工具,胜在轻便、好用、开源、免费 。项目地址:frp github

0x021安装

首先用 uname -m 看一下自己的架构是什么类型的,然后按照对应的类型去下载对应版本的 frp 即可。例:

uname -m
x86_64
// 比如我这里是 Linux 64 位的,那就下载如下的版本
wget https://github.com/fatedier/frp/releases/download/v0.59.0/frp_0.59.0_linux_amd64.tar.gz

// 解压
tar -xzvf frp_0.59.0_linux_amd64.tar.gz 
frp_0.59.0_linux_amd64/
frp_0.59.0_linux_amd64/frpc  // 客户端程序
frp_0.59.0_linux_amd64/LICENSE  
frp_0.59.0_linux_amd64/frpc.toml  // 客户端配置文件
frp_0.59.0_linux_amd64/frps.toml  // 服务端配置文件
frp_0.59.0_linux_amd64/frps  // 服务端程序

// 以上是解压获得的文件

解压出来的就已经是可执行程序了,也不需要额外进行安装。

0x022 使用

完整的官方文档可参见 使用说明

这里我选择的是 xtcp 模式,所以接下来也就以这个为例进行介绍。选用 xtcp 的好处就是建立的是 p2p 连接,双方的通讯不需要依赖服务器转发,上下的带宽也就不会收到公网服务器的影响,不然就现在云服务提供商的小水管可有的我们受的了。

  1. 首先是在公网服务器上部署 frp 的服务端,虽然是 p2p 模式,但是最开始的连接建立还是要依赖公网服务器做下转发。

    // frps.toml
    bindPort = 7000
    
    
    // 部署命令
    frps -c frps.toml
    
    // 添加到服务开机自启
    vim /etc/systemd/system/frps.service
    [Unit]
    # 服务名称
    Description = frp xtcp server
    After = network.target syslog.target
    Wants = networl.tatget
    
    [Service]
    Type=simple
    #启动命令
    ExecStart=your_dir/frps -c your_dir/frps.toml
    
    [Install]
    WantedBy=multi-user.target
    
    // 启动/开机自启命令
    systemctl start frps
    systemctl restart frps
    systemctl enable frps
    
    // 查看当前服务状态
    systemctl status frps
    
  2. 在内网物理机上部署 frp 的客户端

    // frpc.toml
    serverAddr = "公网服务器ip"
    serverPort = 7000
    
    [[proxies]]
    name = "p2p_ssh"
    type = "xtcp"
    secretKey="test_p2p_ssh_xftp"
    localIP = "127.0.0.1"
    localPort = 22
    
    // 开机自启,这里刚开机时可能因为网络问题导致服务启动失败,所以要使用强制重启选项 Restart=always
    vim /etc/systemd/system/frpc.service
    [Unit]
    # 服务名称
    Description = frp xtcp client
    After = network.target syslog.target
    Wants = networl.tatget
    
    [Service]
    Type=simple
    #启动命令
    ExecStart=your_dir/frpc -c your_dir/frpc.toml
    Restart=always
    
    [Install]
    WantedBy=multi-user.target
    
  3. 在任意机器上部署另一端 frp 客户端, 注意:secretKey 要与 serverName 所指定的客户端密钥保持一致

    // frpc.toml
    serverAddr = "公网服务器ip"
    serverPort = 7000
    
    [[visitors]]
    name = "p2p_ssh_visitor"
    type = "xtcp"
    serverName = "p2p_ssh" 
    secretKey="test_p2p_ssh_xftp"
    bindAddr = "127.0.0.1"
    bindPort = 6000
    keepTunnelOpen=true
    
    // 开机自启,这个看个人需求,一般来说外网的机子都是拿在自己手里的,完全可以需要的时候手动启动一下
    

至此,简单的穿透环境就已经搭建好了,只需要在外网机使用 ssh 内网用户名@127.0.0.1 -p 6000 访问即可。按照官方文档所说,xtcp 可能会在某些网络情况下无法正常连接,可以换用 stcp 方式使用,这种方式笔者没试过,如果需要使用请参见本节开头的官方文档。

0x03 写在后面

这里笔者只是简单搭建了一个穿透环境来使用 ssh,其他的待我研究研究。不管从配置还是价钱上来讲,都比买服务器要更为划算,前提是那个迷你主机能多撑两年:>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值