如何通过 SSH 隧道路由我的互联网?

如何通过 SSH 隧道路由我的互联网?

老Q如何在没有 root 权限的情况下设置 OpenVPN 服务器?

有没有办法设置没有 root 权限的 OpenVPN 服务器?例如使用我的主目录中的配置文件?如果有,我该如何设置?

我正在尝试通过 SSH 进入一个系统并在那里设置一个 OpenVPN 服务器供个人使用。

编辑

由于 OpenVPN 显然需要 root 权限,因此我将问题改为使用我可以轻松设置的 SSH 路由我的互联网。

答案1

穿梭巴士是一个通过 SSH 连接转发的透明代理服务器,通过在远程服务器上运行 Python 脚本来设置代理。sshuttle可以在以下条件下运行:

  • 客户端机器或路由器基于Linux、FreeBSD或Mac OS
  • 客户端的管理权限
  • 通过 SSH 访问远程网络
  • 远程网络上的管理员权限
  • 远程服务器上 Python 的可用性

安装穿梭巴士在此处输入图片描述从软件中心或终端:

sudo apt-get install sshuttle

运行 sshuttle 并路由所有流量的基本命令是:

sshuttle -r username@sshserver:port 0/0

执行命令后,sudo将出现密码提示,随后出现 SSH 帐户的密码。除了一条简短消息并在失败时返回 shell 外,不会出现其他详细信息。要获取更多状态消息,请sshuttle使用-v标志以详细模式运行。

在此示例中,除 DNS 之外的所有互联网流量都通过 VPN 路由。-rflag 表示上例中的远程主机名和可选用户名和端口。0/0是 的缩写0.0.0.0/0,表示通过 VPN 路由的子网。 使用 会将0/0除 DNS 请求之外的所有流量路由到远程服务器。 使用-Hflag 可以实现 DNS 隧道。

请阅读手册页 ( man sshuttle) 以了解可运行的选项和模式的详细信息sshuttle。有关概念和更多示例的信息,请参阅项目页面

答案2

如果没有 root 权限,您无法设置 OpenVPN,因为某些操作需要它。

  • 先决条件:您需要在(iptables?)防火墙中启用数据包转发
  • 添加设备操作:必须使用 添加一个特殊的虚拟设备ifconfig。否则,服务器和客户端之间无法通信

根据您的需要,还有其他解决方案可供选择。要浏览您的服务器,您可以设置 SOCKS 服务器。

SOCKS代理

设置 SOCKS 代理并不困难:它内置于 OpenSSH 中。要启用 SOCKS 服务器,请运行以下命令一个终端

ssh user@host -D1234

将 1234 替换为您喜欢的端口。在浏览器中,您可以输入SOCKS4/5 服务器的localhost主机和1234端口。

以下是 Firefox 浏览器中的示例:

  1. 编辑->优先
  2. 打开先进的部分
  3. 前往网络标签
  4. 设置
  5. 选择手动代理配置
  6. 输入localhostSOCKS主机
  7. 输入1234为端口(与 SSH 命令中指定的端口相同)
  8. 好的关闭关闭首选项对话框。

FIrefox 设置示例

答案3

如果您只想通过隧道传输系统 TCP 流量,我建议您使用名为 tun2socks 的程序。如果您还想通过隧道传输 UDP 流量,则必须在服务器上安装 udpgw。

以下是有关如何安装和使用该程序的教程:http://board.nwrk.biz/viewtopic.php?id=3

相关内容