Skip to content
Update ssh authored by umaumax's avatar umaumax
......@@ -147,6 +147,23 @@ LISTEN 0 128 *:8081 *:*
LISTEN 0 128 :::8081 :::*
```
#### sshを利用しないローカルポートフォワーディング
`ssh -N -L 28080:127.0.0.1:8080 localhost`相当の処理
``` bash
python -m http.server 8080
curl localhost:28080
socat TCP4-LISTEN:28080,reuseaddr,fork TCP4:127.0.0.1:8080
```
socatコマンドのバインド設定では外部からの通信も受け付けるようになっている
``` bash
$ sudo lsof -i:28080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
socat 75354 user 5u IPv4 0xc9257403876ca107 0t0 TCP *:28080 (LISTEN)
```
### 簡単にポートフォワーディングしてアクセスしたい
よく利用するリモートターゲットの`~/.ssh/config`の接続先に下記のようにまとめて記述しておくと`localhost:xxx`としてアクセスできるので便利(多重に接続してもエラーなし)
......@@ -167,13 +184,13 @@ LISTEN 0 128 :::8081 :::*
同様のことを実現したい場合にはvscodeのremote sshでリモートターゲットに接続していれば上記相当の処理が自動的に行われる
### firewall機能によって、ローカルIPアドレスでのアクセスが禁止されているときの抜け穴の構築方法(ssh portfowarding利用)
### firewall機能によって、ローカルIPアドレス(192.168.x.x)でのアクセスが禁止されているときの抜け穴の構築方法(ssh portfowarding利用)
```
``` bash
# $FIREWALL_MACHINE: firewall機能で制限されているマシンで実行
ssh -N -R $PROXY_MACHINE 10080:localhost:80
# $PROXY_MACHINE: proxyとして利用する適当なマシンで実行する(これは上のremote portforwardingのポート(10080)が基本的にこのプロキシマシンのローカルに制限されるので、それを公開するためのコマンド)
# $PROXY_MACHINE: proxyとして利用する適当なマシンで実行する(これは上のremote portforwardingのポート(10080)が基本的にこのプロキシマシンのローカルに制限されるので、それを公開するためのコマンド)(これはsocatコマンドで代用可能である)
ssh -N -g -L 8080:localhost:10080 localhost
```
......
......