ToughProxy
ToughProxy copied to clipboard
ToughProxy 是一个代理服务器, 目标是提供一个综合性的代理服务软件,支持 socks5,socks4, http, https代理协议, 针对 Socks5 提供完善的认证机制,以及提供流量控制策略,访问控制策略。
****
ToughProxy
ToughProxy æ¯ä¸ä¸ªä»£çæå¡å¨ï¼ ç®æ æ¯æä¾ä¸ä¸ªç»¼åæ§ç代çæå¡è½¯ä»¶ï¼æ¯æ socks5,socks4, http, https代çåè®®ï¼ é对 Socks5 æä¾å®åçè®¤è¯æºå¶ï¼ä»¥åæä¾æµéæ§å¶çç¥ï¼è®¿é®æ§å¶çç¥ã
åºç¡åè½æ¸ å
- Socks5 代çï¼æ¯æUDPç©¿éï¼
- Socks4 代ç
- Http代ç
- Https代ç
- Socks5 Radius 认è¯ï¼ æ¯æä¸åééæ©å±
- Socks5 æ°æ®åºè®¤è¯
- 认è¯ç¨æ·ç®¡çï¼æ¹éåå»ºç¨æ·æ¯æï¼ç¨æ·ç»æ¯æ
- å ¨å±ééååä¸ªè¿æ¥éé
- è¿æ¥æ°æ§å¶
- æºå°åï¼ç®æ å°åï¼ååè®¿é®æ§å¶
- 宿¶è¿æ¥ä¼è¯æ¥è¯¢ï¼å®æ¶æµéç»è®¡
- è¿æ¥æ¥å¿åæ¡£æ¥è¯¢ï¼å¯èªå®ä¹ä¿å天æ°
- Http APi æä¾
å¿«éå¼å§
注æï¼ linux 䏿ä¾äºå¿«æ·å®è£ èæ¬ï¼è¯·åèå®è£ å å ç linux-installer.md
ç³»ç»ç¯å¢ä¾èµ
- æä½ç³»ç»ï¼æ¯æè·¨å¹³å°é¨ç½² ï¼Linuxï¼Windowsï¼MacOSçï¼
- java çæ¬: 1.8ææ´é«
- æ°æ®åºæå¡å¨ï¼MySQL/MariaDB
æ°æ®åºåå§å
æ°æ®åºçå®è£ é 置请èªè¡å®æ,é¦å ç¡®ä¿ä½ çæ°æ®åºæå¡å¨å·²ç»è¿è¡
è¿è¡åå»ºæ°æ®åºèæ¬ä»¥åå建ä¸ç¨ç¨æ·
create database toughproxy DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
GRANT ALL ON toughproxy.* TO proxyuser@'127.0.0.1' IDENTIFIED BY 'proxypwd' WITH GRANT OPTION;FLUSH PRIVILEGES;
åå»ºæ°æ®åºè¡¨
USE `toughproxy`;
-- 表 toughproxy.ts_acl ç»æ
CREATE TABLE IF NOT EXISTS `ts_acl` (
`id` bigint(20) unsigned NOT NULL,
`priority` int(10) unsigned NOT NULL DEFAULT '0',
`status` int(10) unsigned NOT NULL DEFAULT '1',
`hits` int(10) unsigned NOT NULL DEFAULT '0',
`policy` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL,
`src` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`target` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`domain` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 表 toughproxy.ts_config ç»æ
CREATE TABLE IF NOT EXISTS `ts_config` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`type` varchar(32) COLLATE utf8mb4_unicode_ci NOT NULL,
`name` varchar(128) COLLATE utf8mb4_unicode_ci NOT NULL,
`value` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`remark` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 表 toughproxy.ts_group ç»æ
CREATE TABLE IF NOT EXISTS `ts_group` (
`id` bigint(20) unsigned DEFAULT NULL,
`name` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`status` int(10) unsigned NOT NULL DEFAULT '1',
`up_limit` int(10) unsigned DEFAULT NULL,
`down_limit` int(10) unsigned DEFAULT NULL,
`max_session` int(10) unsigned DEFAULT NULL,
`remark` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
-- 表 toughproxy.ts_user ç»æ
CREATE TABLE IF NOT EXISTS `ts_user` (
`id` bigint(20) unsigned DEFAULT NULL,
`group_id` bigint(20) unsigned DEFAULT NULL,
`group_policy` int(10) unsigned DEFAULT NULL,
`realname` varchar(50) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`username` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`password` varchar(64) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`mobile` varchar(32) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`email` varchar(128) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
`status` int(10) unsigned DEFAULT NULL,
`up_limit` int(10) unsigned DEFAULT NULL,
`down_limit` int(10) unsigned DEFAULT NULL,
`max_session` int(10) unsigned DEFAULT NULL,
`create_time` timestamp NULL DEFAULT NULL,
`update_time` timestamp NULL DEFAULT NULL,
`expire_time` timestamp NULL DEFAULT NULL,
`remark` varchar(512) COLLATE utf8mb4_unicode_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
è¿è¡ä¸»ç¨åº
java -jar -Xms256M -Xmx1024M /opt/toughproxy-latest.jar --spring.profiles.active=prod
注æ jar æä»¶ï¼toughproxy-latest.jarï¼çè·¯å¾
Linux systemd æå¡é ç½®
/opt/application-prod.properties
# web访é®ç«¯å£
server.port = 1823
# æ¥å¿é
ç½®ï¼å¯é logback-prod.xml æ logback-dev.xmlï¼ æ¥å¿ç®å½ä¸º /var/toughproxy/logs
logging.config=classpath:logback-prod.xml
# æ°æ®åºé
ç½®
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/toughproxy?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8
&allowMultiQueries
=true
spring.datasource.username=proxyuser
spring.datasource.password=proxypwd
spring.datasource.max-active=120
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
/usr/lib/systemd/system/toughproxy.service
[Unit]
Description=toughproxy
After=syslog.target
[Service]
WorkingDirectory=/opt
User=root
LimitNOFILE=65535
LimitNPROC=65535
Type=simple
ExecStart=/usr/bin/java -server -jar -Xms256M -Xmx1024M /opt/toughproxy-latest.jar --spring.profiles.active=prod
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
妿äºè§£ spring systemdåé ç½®åçï¼å¯ä»¥æ ¹æ®èªå·±çå®é éè¦è¿è¡ä¿®æ¹
éè¿ä»¥ä¸æä»¤å¯å¨æå¡
systemctl enable toughproxy
systemctl start toughproxy
WEB 管ç访é®
æå¼æµè§å¨è®¿é® http://æå¡å¨å°å:1823
è¿å ¥ç»å½é¡µé¢ï¼ é»è®¤ç®¡çåç¨æ·åå¯ç admin root
æè§åé¦
妿¨æå¥½çå»ºè®®æ³æ³ï¼ 请å å ¥ QQ 群 247860313 交æµ