# 任意两台电脑之间使用SSH🤔

没有公共IP却想使用远程计算机怎么办?

frp 实现内网穿透
natfrp.org 提供免费的 frp server 服务
在 frp 中设置使用 XTCP 协议可以建立 p2p 连接,数据不走 server
1
2
3

# 工具

FRP的全称Fast Reverse Proxy。可以从这里下载。 下载好的文件,解压后是这个样。

.
├── frpc
├── frpc_full.ini
├── frpc.ini
├── frps
├── frps_full.ini
├── frps.ini
├── LICENSE
└── systemd
    ├── frpc.service
    ├── frpc@.service
    ├── frps.service
    └── frps@.service
1
2
3
4
5
6
7
8
9
10
11
12
13

文件含有c字符的代表是client客户端程序;含有s字符的代表是server服务器程序。 也就是我们还需要一个服务器。

# 服务器

接下来我们到 natfrp.org 得到一个免费的frp server。很遗憾,这个网站已经不行了。

看来天下真的没有免费的午餐啊。于是乎我在vultr买了一个东京的服务器。 试了7,8个服务器,ssh都连不过去。貌似是这些IP都已经被墙了。 貌似还有一个搬瓦工的账户,我再试一下这个。这下可以了。

公共IP的服务器(Server):放frpsfrps.ini两个文件 想要访问的内网机器(Target): 放frpc,frpc.ini两个文件

在任意一个地方的电脑(User)

# 设置协议

# Server的配置

在Server的frps.ini中填写:

# frps.ini
[common]
bind_port = 7000
1
2
3

然后在Server上执行:

./frps -c ./frps.ini
1

若没有出现问题,Ctrl+C中断程序。然后使用使用下面的命令使其后台运行。

nohup ./frps -c ./frps.ini &
1

退出服务器。

# 内网机器(Target的配置)

在Target的frpc.ini中填写,其中xxx.xxx.xxx.xxx是你的服务器的IP地址。

[common]
server_addr = xxx.xxx.xxx.xxx
server_port = 7000
http_proxy =

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
1
2
3
4
5
6
7
8
9
10

同样现在内网机器Target上执行

./frpc -c ./frpc.ini
1

用来连接你的frp服务器。 若没有出现问题,那么就可以使用下面的命令使其后台运行

nohup ./frpc -c ./frpc.ini &
1

# 在任意一台电脑上的操作

配置好Server和Target上的frp程序后,我们可以使用下面的命令在任意一台电脑上连接你的内网机器了。 假设你的内网电脑上的用户是jack,那么对应的命令就是:

ssh -p 6000 jack@xxx.xxx.xxx.xxx
1

当然为了操作简单,我们这里没有使用P2P的技术。 暂时就先这样,以后有需要了再说。