我在桌面上工作时使用 tmux,然后如果我想在笔记本电脑上在户外工作,我会通过 ssh 连接到桌面并附加到同一个会话。然后,当我关闭笔记本电脑并返回内部时,桌面上可见的会话会缩小,仅显示较小笔记本电脑屏幕上可用的行/列。无需再次打开我的笔记本电脑,是否有某种方法可以强制笔记本电脑与会话分离?或者至少调整 tmux 的大小以使用桌面屏幕上的所有可用空间?
鉴于以下测试脚本:
#!/bin/bash
# see "killing timeout": https://unix.stackexchange.com/a/57692/65781
declare -a timeout_pids
my_timeout(){
local args tp
args="$@"
timeout $args &
tp=$!
#echo "pid of timeout: $tp"
timeout_pids+=($tp)
wait $tp
}
cleanup(){
echo "-----------------------------------------"
echo "Restoring previous routing table settings"
}
pre_cleanup(){
echo "Executing pre-cleanup..."
exit
}
trap pre_cleanup INT
trap cleanup EXIT
echo "ctrl+c now to execute cleanup"
#my_timeout 9s sleep 20 2> /dev/null >/dev/null # <- does not work as expected!
my_timeout 9s sleep 20 2> /dev/null # <- works as …
Run Code Online (Sandbox Code Playgroud) 正如我们讨论我的问题时,问题是这样的:
我们可以通过UDP打孔技术建立TCP连接吗?
我正在使用 OpenSSH 的反向隧道功能来连接防火墙后面的 SSH 服务器。
server-behind-firewall
现在我可以通过发出
连接机器ssh me@my-known-server -p 12345
这样,my-laptop
的所有流量都会路由到my-known-server
,并且my-known-server
正在将此流量路由到server-behind-firewall
机器。我认为这是低效的。
我正在寻找一种技术,它将提供相同的功能,但使用 BitTorrent 的技术(即,对等点创建到my-known-server
(跟踪器)的 UDP 连接并直接向彼此发送数据包)
有什么办法可以实现这个功能吗?
Bittorrent 连接是通过“UDP 打洞”技术创建的。
显然我正在寻找的是通过“Hamachi”之类使用 NAT 穿越技术的软件建立 SSH 连接。