无需 root 或 ssh 在 Linux 上进行端口转发

无需 root 或 ssh 在 Linux 上进行端口转发

我想知道是否有可能在不使用 root 或 ssh 的情况下进行端口转发。

目前我

ssh -L 20080:othermachine:80 localhost

使用 ssh 可以为您带来某些好处,例如创建加密隧道等。在上面的例子中,我没有这样做,因此使用 ssh 似乎是不必要的开销。有没有更简单的方法可以做到这一点?

我认为创建一个程序来读取一个套接字上的所有数据并将其发送到另一个套接字(反之亦然)并不难。一定有某种工具比我编写的程序能更好地完成这项工作。

答案1

我也更喜欢 ssh,因为它有加密功能,但是'索卡特' 对你来说应该也很好用。

答案2

您问:Is there an easier way to do this? 简单的答案是“不”。SSH 可以满足您的需求,而且它是一个使用广泛、众所周知、非常高效的程序,(我认为)错误很少,可以在您能想到的每个平台上使用,而且启动时很安全。您没有说性能是个问题,所以我个人认为没有理由不使用 SSH。

如果您想要将本地端口转发到另一台机器上的端口,则需要某种可以在该远程主机上进行身份验证的东西。那就是 SSH。如果您只想使用本地端口,那么如前所述,这socat可能正是您所需要的。

答案3

如果您所做的工作有效,并且您没有看到任何性能问题,我不会改变任何东西。如果您不传输大量数据,它应该不会产生太大影响。如果您传输大量数据,ssh 可以压缩数据,因此您可能仍然会更好。

唯一的问题可能是延迟。看起来您正在通过隧道传输 http 流量,因此延迟应该可以忽略不计。

答案4

无论您使用什么工具:当不使用 Windows 时,您将总是(和仅有的) 在使用特权端口(“知名端口”)时需要以超级用户权限运行。因此:当使用最高 1023 的端口时。

相关内容