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

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

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

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

编辑

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

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

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

安装sshuttle 在此处输入图像描述 来自软件中心或终端:

 sudo apt-get install sshuttle 

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

 sshuttle -r username@sshserver:port 0/0 

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

在此示例中,除DNS之外的所有互联网流量都通过VPN路由。 -r标志表示上例中的远程主机名和可选的用户名和端口。 0/00.0.0.0/0缩写,表示通过VPN路由的子网。 0/0的使用将除DNS请求之外的所有流量路由到远程服务器。 使用-H标志可以进行DNS调整。

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

您无法在没有root权限的情况下设置OpenVPN,因为某些操作需要它。

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

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

SOCKS代理

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

 ssh user@host -D1234 

用您首选的端口替换1234。 在浏览器中,您可以输入localhost作为主机,输入1234作为SOCKS4 / 5服务器上的端口。

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

  1. 转到编辑 – > 首选项
  2. 打开“ 高级”部分
  3. 转到“ 网络”选项卡
  4. 设置
  5. 选择手动代理配置
  6. 输入localhost作为SOCKS主机
  7. 输入1234作为端口(与SSH命令中指定的端口相同)
  8. 确定关闭以关闭首选项对话框。

FIrefox设置示例

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

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