proxy
proxy copied to clipboard
Implementation of http, https, socks4/socks4a, socks5 proxy protocols using modern c++ (使用现代 c++ 实现 http、https、socks4/socks4a、socks5 代理协议。)
一个使用现代c++实现的socks4/5协议的实现
<BR>
<BR>
<BR>
使用 C++20协程 ,支持socks4/socks4a/socks5的server/client实现,client与server之间可通过ssl加密通信,可配置如下架构:
+--------------+ | +--------------+
browser/app --> | socks server | ---ssl---> | socks server | --> target server
+--------------+ | +--------------+
local GFW remote
同时socks server能伪装为web server来回应非socks协议的请求。
使用示例程序:
#include "socks/logging.hpp"
#include "socks/socks_server.hpp"
#include "socks/socks_client.hpp"
#include "socks/use_awaitable.hpp"
#include <boost/asio/io_context.hpp>
#include <boost/asio/co_spawn.hpp>
#include <boost/asio/detached.hpp>
#include <memory>
namespace net = boost::asio;
using net::ip::tcp;
using namespace socks;
using server_ptr = std::shared_ptr<socks_server>;
net::awaitable<void> start_socks_server(server_ptr& server)
{
tcp::endpoint socks_listen(
net::ip::address::from_string("0.0.0.0"),
1080);
socks_server_option opt;
opt.usrdid_ = "jack";
opt.passwd_ = "1111";
auto executor = co_await net::this_coro::executor;
server =
std::make_shared<socks_server>(
executor, socks_listen, opt);
server->start();
co_return;
}
int main()
{
net::io_context ioc(1);
server_ptr server;
net::co_spawn(ioc, start_socks_server(server), net::detached);
ioc.run();
return 0;
}
有任何问题可加tg账号: https://t.me/jackarain 或tg群组: https://t.me/joinchat/C3WytT4RMvJ4lqxiJiIVhg