老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 路由。-r
flag 表示上例中的远程主机名和可选用户名和端口。0/0
是 的缩写0.0.0.0/0
,表示通过 VPN 路由的子网。 使用 会将0/0
除 DNS 请求之外的所有流量路由到远程服务器。 使用-H
flag 可以实现 DNS 隧道。
请阅读手册页 ( man sshuttle
) 以了解可运行的选项和模式的详细信息sshuttle
。有关概念和更多示例的信息,请参阅项目页面。
答案2
如果没有 root 权限,您无法设置 OpenVPN,因为某些操作需要它。
- 先决条件:您需要在(iptables?)防火墙中启用数据包转发
- 添加设备操作:必须使用 添加一个特殊的虚拟设备
ifconfig
。否则,服务器和客户端之间无法通信
根据您的需要,还有其他解决方案可供选择。要浏览您的服务器,您可以设置 SOCKS 服务器。
SOCKS代理
设置 SOCKS 代理并不困难:它内置于 OpenSSH 中。要启用 SOCKS 服务器,请运行以下命令一个终端:
ssh user@host -D1234
将 1234 替换为您喜欢的端口。在浏览器中,您可以输入SOCKS4/5 服务器的localhost
主机和1234
端口。
以下是 Firefox 浏览器中的示例:
- 去编辑->优先
- 打开先进的部分
- 前往网络标签
- 按设置
- 选择手动代理配置
- 输入
localhost
为SOCKS主机 - 输入
1234
为端口(与 SSH 命令中指定的端口相同) - 按好的和关闭关闭首选项对话框。
答案3
如果您只想通过隧道传输系统 TCP 流量,我建议您使用名为 tun2socks 的程序。如果您还想通过隧道传输 UDP 流量,则必须在服务器上安装 udpgw。
以下是有关如何安装和使用该程序的教程:http://board.nwrk.biz/viewtopic.php?id=3