
Raw Socket을 사용하여 UDP 트래픽을 암호화된 UDP/FakeTCP/ICMP 트래픽으로 변환하는 터널입니다. UDP 방화벽(또는 불안정한 UDP 환경)을 우회하는 데 도움을 줍니다.
Raw Socket을 사용하여 UDP 트래픽을 암호화된 FakeTCP/UDP/ICMP 트래픽으로 변환하는 터널입니다. UDP 방화벽(또는 불안정한 UDP 환경)을 우회하는 데 도움을 줍니다.
단독으로 사용할 경우 udp2raw는 UDP 트래픽만 터널링합니다. 그러나 udp2raw와 UDP 기반 VPN을 함께 사용하면 모든 트래픽(TCP/UDP/ICMP 포함)을 터널링할 수 있습니다. 현재 OpenVPN/L2TP/ShadowVPN 및 tinyfecVPN이 지원됩니다.

또는

root 계정 또는 cap_net_raw 권한이 있는 Linux 호스트(데스크탑 Linux, Android 폰/태블릿, OpenWRT 라우터, 라즈베리 파이 포함)
Windows 및 MacOS 사용자는 이 저장소의 udp2raw를 사용하세요.
ICMP/FakeTCP 헤더는 일부 ISP에서 UDP 차단, UDP QoS 또는 부적절한 UDP NAT 동작을 우회하는 데 도움을 줍니다. ICMP 헤더 모드에서 udp2raw는 ICMP 터널처럼 작동합니다.
UDP 헤더도 지원됩니다. UDP 헤더 모드에서는 일반 UDP 터널처럼 동작하며, 암호화, 재전송 방지 또는 연결 안정화와 같은 다른 기능을 활용할 수 있습니다.
FakeTCP 헤더 모드에서 udp2raw는 연결 설정 시 3-way 핸드셰이크를 시뮬레이션하고, 데이터 전송 중 seq와 ack_seq를 시뮬레이션합니다. 또한 MSS, sackOk, TS, TS_ack, wscale과 같은 몇 가지 TCP 옵션도 시뮬레이션합니다. 방화벽은 FakeTCP를 TCP 연결로 간주하지만, 본질적으로 UDP이므로 실시간/순서 무관 전달을 지원하며(일반 UDP와 동일), 혼잡 제어나 재전송이 없습니다. 따라서 OpenVPN 사용 시 TCP over TCP 문제가 발생하지 않습니다.
하트비트로 연결 장애를 감지합니다. 타임아웃 발생 시 클라이언트는 자동으로 포트 번호를 변경하고 재연결합니다. 재연결에 성공하면 이전 연결이 복구되고 기존의 모든 UDP 세션이 유효하게 유지됩니다.
예를 들어 udp2raw + OpenVPN을 사용하는 경우, 네트워크 케이블이 다시 연결되거나 WiFi 액세스 포인트가 변경되더라도 재연결 후 OpenVPN 연결이 끊어지지 않습니다.
멀티플렉싱 하나의 클라이언트가 여러 UDP 연결을 처리할 수 있으며, 모두 동일한 raw 연결을 공유합니다.
다중 클라이언트 하나의 서버가 여러 클라이언트를 가질 수 있습니다.
NAT 지원 세 가지 모드 모두 NAT 환경에서 작동합니다.
OpenVZ 지원 BandwagonHost VPS에서 테스트 완료.
빌드 용이 종속성이 없습니다. udp2raw를 크로스 컴파일하려면 툴체인을 다운로드하고 makefile을 수정하여 툴체인을 가리킨 후 make cross를 실행하면 됩니다. (참고: 데스크탑, 라즈베리파이, Android, 일부 Openwrt 라우터용 사전 컴파일된 바이너리는 릴리스에 포함되어 있습니다.)
Bypass UDP QoS Bypass UDP Blocking Bypass OpenVPN TCP over TCP problem OpenVPN over ICMP UDP to ICMP tunnel UDP to TCP tunnel UDP over ICMP UDP over TCP
https://github.com/wangyu-/udp2raw-tunnel/releases 에서 바이너리 릴리스를 다운로드하세요.
UDP가 차단되었거나 QoS가 적용되거나 지원이 불량하다고 가정합니다. 서버 IP가 44.55.66.77이고, udp 포트 7777에서 수신 중인 서비스가 있다고 가정합니다.
# 서버 측 실행:
./udp2raw_amd64 -s -l0.0.0.0:4096 -r 127.0.0.1:7777 -k "passwd" --raw-mode faketcp -a
# 클라이언트 측 실행
./udp2raw_amd64 -c -l0.0.0.0:3333 -r44.55.66.77:4096 -k "passwd" --raw-mode faketcp -a
(위 명령은 root로 실행해야 합니다. 더 나은 보안을 위해 몇 가지 추가 단계를 거쳐 udp2raw를 비-root로 실행할 수 있습니다. 자세한 내용은 이 링크를 확인하세요.)


이제 클라이언트와 서버 간에 TCP 포트 4096을 통해 암호화된 raw 터널이 설정되었습니다. 클라이언트 측의 UDP 포트 3333에 연결하는 것은 서버 측의 포트 7777에 연결하는 것과 동일합니다. UDP 트래픽이 노출되지 않습니다.
Android에서 실행하려면 Android_Guide를 확인하세요.
-a 옵션은 자동으로 iptables 규칙(또는 여러 규칙)을 추가합니다. udp2raw는 이 iptables 규칙에 의존하여 안정적으로 작동합니다. -a를 잊지 마십시오(흔한 실수입니다). udp2raw가 iptables 규칙을 자동으로 추가하지 않도록 하려면 수동으로 추가하고(-g 옵션 참조) -a를 생략할 수 있습니다.
udp2raw-tunnel
git version:4623f878e0 build date:Nov 3 2024 23:15:46
repository: https://github.com/wangyu-/udp2raw-tunnel
usage:
run as client : ./this_program -c -l local_listen_ip:local_port -r server_address:server_port [options]
run as server : ./this_program -s -l server_listen_ip:server_port -r remote_address:remote_port [options]