利用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. Optional源码分析(涉及Objects源码和Stream源码)

    研究Optional源码之前先谈一谈Objects源码. 主要代码: @ForceInline public static <T> T requireNonNull(T obj) { if ...

  2. MVC:开发模式

    1.jsp演变历史     1.早期只有servlet,只能使用response输出标签数据,非常麻烦.       2.后来有了jsp,简化了Servlet的开发,如果过度使用jsp中即写大量的Ja ...

  3. C#_Win32_PInvoke源码生成器

    介绍 一个源代码生成器,用于向 C#项目添加一组用户定义的 Win32 P/Invoke 方法和相关的类型. 链接地址: https://github.com/microsoft/CsWin32 还在 ...

  4. 基于python人脸识别考勤系统(语音播报)

    介绍: 本项目是大二寒假在家没事写的,一直没有时间讲本项目分享出来,现在有时间了哈.那就让我简单的将项目介绍一下吧.好了废话不多说了,直接上图 初始化界面: 可以看到所有的功能都展现在了左边的功能栏中 ...

  5. MySQL运维6-Mycat垂直分库

    一.垂直分库场景 场景:在业务系统中,涉及一下表结构,但是由于用户与订单每天都会产生大量的数据,单台服务器的数据存储以及处理能力是有限的,可以对数据库表进行拆分,原有数据库如下 说明1:整个业务系统中 ...

  6. lower_bound() upper_bound()函数

    转自http://blog.csdn.net/niushuai666/article/details/6734403 函数lower_bound()在first和last中的前闭后开区间进行二分查找, ...

  7. Python——第二章:列表的增、删、改、查

    列表的添加 .append() lst = [] # 向列表末尾添加内容 # append() 追加 lst.append("张绍刚") lst.append("赵本山& ...

  8. 云MSP服务案例丨某知名制造集团的Oracle RAC部署实践

    简介: 随着DT时代到来,移动互联网.物联网开始高速发展,更多的企业意识到了数据库架构选型对业务发展的重要性,如何管理和利用好数据已经变得越来越重要.Oracle作为世界上目前最流行的关系型数据库管理 ...

  9. 记一次 .NET某收银软件 非托管泄露分析

    一:背景 1. 讲故事 在我的分析之旅中,遇到过很多程序的故障和杀毒软件扯上了关系,有杀毒软件导致的程序卡死,有杀毒软件导致的程序崩溃,这一篇又出现了一个杀毒软件导致的程序非托管内存泄露,真的是分析多 ...

  10. zabbix_agent配置文件

    agent常用参数 : [root@jqebsdb zabbix]# cat zabbix_agentd.conf  | grep -v ^$ | grep -v ^# PidFile=/var/ru ...