Server A is an internet facing server which has port 7000 open to the outside world.
Server B is on the internal network, which does not have any ports open to the outside world.
To keep things secure, remember to make use of the auth.method which requires that a matching token is set on each of the frp clients.
Download frp from github here.
frps.toml on server A ( address x.x.x.x )
bindPort = 7000
auth.method = "token"
auth.token = "some_random_token"
bindPort = 7000
auth.method = "token"
auth.token = "some_random_token"
frpc.toml on server B
serverAddr = "x.x.x.x"
serverPort = 7000
auth.token = "some_random_token"
[[proxies]]
name = "secret_ssh"
type = "stcp"
secretKey = "some_secret_key"
localIP = "127.0.0.1"
localPort = 22
serverAddr = "x.x.x.x"
serverPort = 7000
auth.token = "some_random_token"
[[proxies]]
name = "secret_ssh"
type = "stcp"
secretKey = "some_secret_key"
localIP = "127.0.0.1"
localPort = 22
frpc.toml on client computer
serverAddr = "x.x.x.x"
serverPort = 7000
auth.token = "some_random_token"
[[visitors]]
name = "secret_ssh_visitor"
type = "stcp"
serverName = "secret_ssh"
secretKey = "some_secret_key"
bindAddr = "127.0.0.1"
bindPort = 6000
Now you can connect to the local server on port 22, from the client, by using the command below.
serverAddr = "x.x.x.x"
serverPort = 7000
auth.token = "some_random_token"
[[visitors]]
name = "secret_ssh_visitor"
type = "stcp"
serverName = "secret_ssh"
secretKey = "some_secret_key"
bindAddr = "127.0.0.1"
bindPort = 6000
ssh -oPort=6000 127.0.0.1