利用gost实现pptp转socks5或http代理

以debian10为例

1、安装pptp服务器端

sudo apt-get install pptpd   #debian系统

编辑/etc/pptpd.conf,ip段可以自己设置,增加以下两行:

localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245

这里localip指pptp服务端的IP, remoteip是客户端连接后分配的IP范围

编辑/etc/ppp/chap-secrets,设置pptp认证信息,在最后面新增一行:

user1 pptpd       123456  *
user2 pptpd 123456 192.168.0.245

*为从地址池随机分配,也可以固定一个ip地址

2、安装gost

官网链接在这儿不会编译就直接下二进制文件,丢进去就行:https://latest.gost.run/

创建gost-config.json 可以创建很多个配置文件。我这儿只写了两条,多个可以自行再生成

{
"Debug": true,
"Retries": 0,
"ServeNodes": [
{
"Name": "transparent_proxy_1",
"Listen": "tcp://:31339",
"ProxyProtocol": "socks5", #透明代理协议,http,https,socks5之类的。
"ProxyAddress": "10.0.0.1:1082",
"Protocol": "redirect",
"Target": ""
"Username": "your_username", #账号密码,有的话加上,没有的话删了这两行。
"Password": "your_password"
},
{
"Name": "transparent_proxy_2",
"Listen": "tcp://:31338",
"ProxyProtocol": "socks5",
"ProxyAddress": "10.0.0.1:54213",
"Protocol": "redirect",
"Target": ""
}
]
}

手动执行命令./gost -C gost-config.json

创建服务项gost.service

[Unit]
Description=Gost Transparent Proxy Service
After=network.target [Service]
ExecStart=/path/to/gost -C /path/to/gost-config.json #写你的配置文件和gost所在的目录
Restart=always [Install]
WantedBy=multi-user.target

使用iptables进行数据转发

创建ipt.conf,看不懂的话就直接抄作业

*nat
:PREROUTING ACCEPT
:INPUT ACCEPT
:OUTPUT ACCEPT
:POSTROUTING ACCEPT
# Create new chain
:REDSOCKS -
#指定源ip转发数据到指定端口
-A PREROUTING -i ppp+ -s 192.168.0.234 -p tcp -j REDIRECT --to 31338
-A PREROUTING -i ppp+ -s 192.168.0.235 -p tcp -j REDIRECT --to 31339 # Ignore LANs and some other reserved addresses.
# See http://en.wikipedia.org/wiki/Reserved_IP_addresses#Reserved_IPv4_addresses
# and http://tools.ietf.org/html/rfc5735 for full list of reserved networks.
-A REDSOCKS -d 0.0.0.0/8 -j RETURN
-A REDSOCKS -d 10.0.0.0/8 -j RETURN
-A REDSOCKS -d 127.0.0.0/8 -j RETURN
-A REDSOCKS -d 169.254.0.0/16 -j RETURN
-A REDSOCKS -d 172.24.0.0/16 -j RETURN
-A REDSOCKS -d 192.168.0.0/16 -j RETURN
-A REDSOCKS -d 224.0.0.0/4 -j RETURN
-A REDSOCKS -d 240.0.0.0/4 -j RETURN
# Anything else should be redirected to respective ports
#指定源ip转发数据到指定端口
-A REDSOCKS -p tcp -m iprange --src-range 192.168.0.234-192.168.0.234 -j REDIRECT --to 31338
-A REDSOCKS -p tcp -m iprange --src-range 192.168.0.235-192.168.0.235 -j REDIRECT --to 31339
-A OUTPUT -p tcp -j REDSOCKS -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
COMMIT

应用iptables规则并保存配置

sudo iptables-restore < ipt.conf
sudo iptables-save

另附清空iptables的命令

iptables -F        # 清空过滤器(filter)表的规则
iptables -X # 删除所有自定义链
iptables -t nat -F # 清空网络地址转换(NAT)表的规则
iptables -t nat -X # 删除所有自定义链
iptables -t mangle -F # 清空mangle表的规则
iptables -t mangle -X # 删除所有自定义链
iptables -P INPUT ACCEPT # 将INPUT链的默认策略设置为接受(ACCEPT)
iptables -P FORWARD ACCEPT # 将FORWARD链的默认策略设置为接受(ACCEPT)
iptables -P OUTPUT ACCEPT # 将OUTPUT链的默认策略设置为接受(ACCEPT)

最后再测试pptp连接后网络是否走对应的链路

利用gost实现pptp转socks5或http代理的更多相关文章

  1. Sublime 配置代理以及 Socks5 转 http 代理

    一.原因 在使用 sublime 3.2.1 的时候,安装插件时出错 因为被墙的原因,所以要设置代理 设置路径: 首选项 -> Package -> Settings -> Pack ...

  2. 利用proxychains在终端使用socks5代理

    最近用各种脚本下载东西的时候发现有的站点需要当地IP才能下,比如.....nico, youtube等: 所以就找了下能在终端用socks5代理的工具,最后找到了proxychains,从此再无压力= ...

  3. 使用 某款基于Socks5协议的代理软件 一段时间后 被封锁掉IP的一些技术思考

    由于关键词比较敏感为了不被删除帖子所以文中某软件(上图所示软件)不用全称表示. 去年9月末在 在某国外网站 上弄了一个vpn,在上面安装了某软件,使用起来还是蛮不错的,平时查查英文论文,看看美剧还是比 ...

  4. Curl测试socks5 or http 代理命令

    测试socks5命令:curl --socks5 125.119.175.48:8909 http://example.com/ 测试http命令: curl --connect-timeout 2 ...

  5. iOS 利用webView加载html代码,在代理中获取html页面的链接时出现的问题

    getDetailWebview.loadHTMLString(webViewData as String, baseURL:NSURL(string: "\(ProBaseWeb)&quo ...

  6. 在容器中利用Nginx-proxy实现多域名的自动反向代理、免费SSL证书

    在个人的小项目或者测试环境中,配置反向代理显得十分繁琐,而借助 Nginx-proxy 的镜像,即使是小白,也能快速实现域名转发. 1.域名.IP自动转发 在开始之前,首先黑进了自家的路由器,将某个域 ...

  7. 让终端走socks5代理

    (2017.9.17更新) 方法1: 在终端中直接运行命令 1 export http_proxy=http://proxyAddress:port 这个办法的好处是简单直接,并且影响面很小(只对当前 ...

  8. 使用 EW 作Socks5代理

    简介: EarthWorm是一款用于开启 SOCKS v5 代理服务的工具,基于标准 C 开发,可提供多平台间的转接通讯,用于复杂网络环境下的数据转发. 主页: http://rootkiter.co ...

  9. 不用Unity库,利用.NET动态代理自己实现AOP

    AOP意为面向切面的程序设计,主要表现为对不同的代码逻辑进行隔离,从而降低不同业务逻辑之间的耦合性,AOP又理解为“横切”,可以在不改变原有实现的情况下,对代码进行拦截和扩展,如果原有设计像一个瓶子, ...

  10. windows使用proxifier全局代理 - 配置可用; windows10 配置全局代理 走 socks5

    最近windows上需要配置全局代理 走 socks5,发现同类型的有 cow pcap 等解决方案,通过尝试发现还是proxifier 比较好用! 下载:https://www.proxifier. ...

随机推荐

  1. WPF应用开发之附件管理

    在我们之前的开发框架中,往往都是为了方便,对附件的管理都会进行一些简单的封装,目的是为了方便快速的使用,并达到统一界面的效果,本篇随笔介绍我们基于SqlSugar开发框架的WPF应用端,对于附件展示和 ...

  2. 用友U8与MES系统API接口对接案例分析

    企业数字化转型:轻易云数据集成平台助力 U8 ERP+MES 系统集成 为什么选择数字化转型? 领导层对企业资源规划(ERP)的深刻理解促使了数字化转型的启动. 采用精确的"N+5" ...

  3. macOS上有哪些值得推荐的常用软件

    macOS 作为一款流行的操作系统,拥有丰富的第三方软件生态系统,涵盖了各种领域的应用程序.以下将介绍一些在 macOS 上备受推崇的常用软件,并对它们进行详细的介绍和说明. 1. 生产力工具 a. ...

  4. SSPRQ码型设计

    serdes速率超过50G之后,在VSR光模块场景下SSPRQ使用较为广泛.SSPRQ用于PAM4光模块眼图压力,闭合率测试. 但是有很多serdes IP不支持此功能.出于测试需要需要新设计SSPR ...

  5. VO、DTO、Entity的区别

    只能说从实际用法的一般习惯上进行区分: 1.entity 里的每一个字段,与数据库相对应,注意:entity与对应的实际数据库表的字段 没有强制要求但是一般建议保持一致(包括字段数据类型),当然,从实 ...

  6. 【matlab混沌理论】1.4.双摆杆的不同参数模型

    双摆杆运动模型.初始条件的微小差异,会导致千差万别的运动现象,这是混沌理论重要体现.主要考虑初始条件有两摆杆长度.质量.初始摆杆角度.重力加速度. input: % 参数定义 L1 = 1; % 第一 ...

  7. SpringBoot整合Liquibase

    1.是什么? Liquibase官网 Liquibase是一个开源的数据库管理工具,可以帮助开发人员管理和跟踪数据库变更.它可以与各种关系型数据库和NoSQL数据库一起使用,并提供多种数据库任务自动化 ...

  8. python tkinter 使用(七)

    python tkinter 使用(七) 本篇文章主要讲下tkinter 中的message 控件. Message控件可以用于在窗口中显示一段文本消息. 以下是个简单的例子: #!/usr/bin/ ...

  9. 服务网格 Service Mesh

    什么是服务网格? 服务网格是一个软件层,用于处理应用程序中服务之间的所有通信.该层由容器化微服务组成.随着应用程序的扩展和微服务数量的增加,监控服务的性能变得越来越困难.为了管理服务之间的连接,服务网 ...

  10. keycloak~从login-status-iframe页面总结如何跨域传值~续

    keycloak~从login-status-iframe相关文章,可阅读我的这两篇keycloak~从login-status-iframe页面总结如何跨域传值,keycloak~对接login-s ...