在不同IP规则表之间切换客户端的Web UI

vpnchooser的Python项目详细描述


#vpnchooser

啊![vpnchooser截图](https://github.com/cbrand/vpnchooser/raw/master/images/screenshot.png“vpnchooser截图”)

vpnchooser是一个web应用程序,可以用作图形 用于将设备从一个IP规则表移动到另一个IP规则表的用户界面。

这些可以用于将客户端重新路由到不同的网关,因此 名称“vpnchooser”。

##设置

该系统建立在利用ip规则系统的linux路由器之上。 它已经用“[dd wrt](http://www.dd-wrt.com/site/index)”进行了测试 不过,路由器系统应该可以与每一个拥有 ssh访问。

首先,您需要定义自己的IP规则定义并发送流量 在路由器上到另一个网关(通常应该发送 通过VPN的流量)。

` ip route add default via {gateway} dev {device} table 10 `

###通过Docker

为此,必须在 [github](https://github.com/cbrand/vpnchooser)。

如果你想测试设置,我推荐Docker。

确保您有[Docker](https://www.docker.com/)和 [docker compose](https://docs.docker.com/compose/)已安装。

复制“example.cfg”并将其与用户名、密码放在一起 检索到的主机密钥为“docker.cfg”。

要填充数据,需要用户的ssh主机密钥。你可以 通常使用服务器/路由器上的以下命令之一获取这些命令:

` ssh-keygen-l-f /etc/ssh/ssh_host_rsa_key.pub ssh-keygen-l-f /etc/ssh/ssh_host_dsa_key.pub ssh-keygen-l-f /etc/ssh/ssh_host_key.pub `

作为替代方案,您可以遵循正常的安装说明 并使用控制台提供的配置生成实用程序 脚本,打包在包中。

` vpnchooser generate_config --docker {path_to_config_file} `

这将要求必要的配置选项(路由器的主机, 用户名、密码)并从主机中提取ssh主机密钥。最后 它将其存储到作为命令行参数传递的文件中。

对于生产版本,还应该调整mysql的根密码, 存储在docker-compose.yml文件中。

之后,您可以使用以下命令启动必要的docker实例 命令。

` docker-compose up `

这将生成并下载所有必需的系统组件,并启动 必要的系统组件。 之后,您应该能够通过端口5000访问应用程序。 默认用户名为“admin”,密码为“admin”。

###不带Docker

要在没有docker的情况下运行系统,至少需要提供一个redis 可用于同步redis后端的服务器。可选的 也可以提供数据库。但是,默认的sqlite数据库可以 也被利用。

如果您提供了必要的软件,则可以安装应用程序。 我建议在 [虚拟环境](http://docs.python-guide.org/en/latest/dev/virtualenvs/)。

现在您可以通过 ` easy_install vpnchooser `

之后,您可以使用“vpnchooser”命令生成配置文件。

` vpnchooser generate_config {path_to_config_file} `

这将指导您完成配置数据的过程。之后 文件已生成,您应将其设置为配置文件并 然后可以启动服务器。

` export FLASK_CONFIG_FILE={path_to_config_file} vpnchooser runserver `

在另一个终端启动芹菜进程以同步 路由器的当前状态。

` export FLASK_CONFIG_FILE={path_to_config_file} vpnchooser runcelery `

##开发环境

要编译前端,需要node.js和npm。

转到“src/vpnchooser/static”文件夹并键入

` npm install grunt dev `

这将编译前端。

##许可证

代码是根据[mit]授权的(http://opensource.org/licenses/MIT) 执照。

##待办事项

该应用程序仍在开发中。如果你想贡献 以下是一些很好的主题:

  • ssh私钥,用于通过路由器进行身份验证
  • 更好的文档
    • 登机
    • 代码
  • 单元测试

我将很高兴地审查和合并给这个项目的请求。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java在二维数组中获取所有值的组合   java如何在Heroku上运行Flyway迁移?   当Tomcat作为windows服务启动时,其他计算机无法使用java Tomcat应用程序   java SPNEGO获取用户详细信息   java多线程SaxParser解析多个xml文件   如何将十六进制字符串转换为字节。JAVA   java Android:如何在MapBox中添加自定义标记?   java如何从Android广播UDP数据包?   java驱动程序。executeScript()返回简单javascript的NullPointerException   java我们如何在网站上从系统上传文件?   java在JTextArea中剪切和粘贴   java PrimeFacesRequestContext。getCurrentInstance()。为SelectOne菜单重置   java在安卓中动态存储运行时变量   java如何检测“文本内容中发现无效字符”   Java数据结构:错误“无法访问LinkedList”   java合并排序(根据频率排序单词)   java为什么/如何将整数设置为1使while循环工作?   java Maven编译器插件抱怨“未找到SLF4J提供程序”   jakarta ee java锁定文件   java Hibernate会话。update()与update查询?