@push.rocks/smartproxy
Version:
A powerful proxy package with unified route-based configuration for high traffic management. Features include SSL/TLS support, flexible routing patterns, WebSocket handling, advanced security options, and automatic ACME certificate management.
76 lines (75 loc) • 1.79 kB
TypeScript
/**
* Interfaces for NfTablesProxy
*/
/**
* Represents a port range for forwarding
*/
export interface PortRange {
from: number;
to: number;
}
export type IPortRange = PortRange;
/**
* Settings for NfTablesProxy.
*/
export interface NfTableProxyOptions {
fromPort: number | PortRange | Array<number | PortRange>;
toPort: number | PortRange | Array<number | PortRange>;
toHost?: string;
preserveSourceIP?: boolean;
deleteOnExit?: boolean;
protocol?: 'tcp' | 'udp' | 'all';
enableLogging?: boolean;
ipv6Support?: boolean;
logFormat?: 'plain' | 'json';
ipAllowList?: string[];
ipBlockList?: string[];
useIPSets?: boolean;
forceCleanSlate?: boolean;
tableName?: string;
maxRetries?: number;
retryDelayMs?: number;
useAdvancedNAT?: boolean;
qos?: {
enabled: boolean;
maxRate?: string;
priority?: number;
markConnections?: boolean;
};
netProxyIntegration?: {
enabled: boolean;
redirectLocalhost?: boolean;
sslTerminationPort?: number;
};
}
export type INfTableProxySettings = NfTableProxyOptions;
/**
* Interface for status reporting
*/
export interface NfTablesStatus {
active: boolean;
ruleCount: {
total: number;
added: number;
verified: number;
};
tablesConfigured: {
family: string;
tableName: string;
}[];
metrics: {
forwardedConnections?: number;
activeConnections?: number;
bytesForwarded?: {
sent: number;
received: number;
};
};
qosEnabled?: boolean;
ipSetsConfigured?: {
name: string;
elementCount: number;
type: string;
}[];
}
export type INfTablesStatus = NfTablesStatus;