테스트 목적
저는 vpn 서버를 해외 게임을 하기 위해 만들었습니다
KT의 라우팅이 너무 안좋아서 홍콩의 서버에 연결하는데 핑이 280이 나오기도 하고 그랬습니다.
알고보니 미국 경유..
그래서 다른 ISP를 사용하는 VPN을 무료로 사용할 방법 없을까 하던 참에 찾은것이 Oracle free tier였습니다.
친구 집의 iptime vpn을 이용하려고도 해봤는데, 왜 제 친구들은 죄다 KT죠..?
따라서 가장 중요한 요소는 ping입니다.
oracle free tier에 openvpn을 설치하여 사용했습니다.
핑은 굉장히 좋았으나 15분, 20분에 한번씩 10초 정도 핑 300이 나오곤 했습니다.
처음 openvpn 구축하고 핑을 테스트 할때도 ping은 55 정도로 준수하게 나왔으나 브라우저로 네이버 홈페이지 새로고침만 하면 300까지 올라갔었습니다.
사용량이 증가하면 지연되었던 것이죠.
물론 최근에는 그런 일을 경험하지 못했지만, 그래도 'wireguard가 더 성능이 좋게 나오는 것이 더 적은 cpu 사용량, 더 적은 리소스 사용량에 의한것이 아닐까? 그렇다면 옆에서 새로고침 한다고 핑 튀는 일이 없어지지 않을까?' 하고 설치해보았습니다.
결국 목적은 해외 게임의 핑을 개선하는 용도로 사용하기에 더 유리한 vpn을 찾는 것입니다.
최대 속도보다 중요한건 ping의 편차와 ping의 평균입니다.
그래서 oracle free tier에 wireguard를 설치, openvpn과 비교해보았습니다.
환경 세팅.
openvpn의 경우
https://www.cyberciti.biz/faq/ubuntu-20-04-lts-set-up-openvpn-server-in-5-minutes/
이 방법으로 설정하였으며, 그 외에
duplicate-cn
client-to-client
sndbuf 294912
rcvbuf 393216
fast-io
옵션을 추가하였습니다
duplicate-cn 덕분에 하나의 프로필에 여러대 연결이 가능합니다.
기기별로 키를 만드는게 아니라 사용자별로 만들 수 있습니다.
wireguard는 docker를 그대로 설치하고, peer만 3개로 설정하여 이용했습니다.
과정
test1.
openvpn에 3대를 연결하고 한대는 ping, 다른 두대는 동시에 속도 측정을 시도했습니다.
wiregurad에 3대를 연결하고 한대는 ping, 다른 두대는 동시에 속도 측정을 시도했습니다.
ping을 0.3초마다 보내도록 while로 반복시켜뒀습니다.
그리고 두대의 컴퓨터에서 speedtest.net을 동시에 실행합니다.
test2.
openvpn에 3대를 연결하고 한대는 ping, 다른 두대는 동시에 속도 측정을 시도했습니다.
wiregurad에 3대를 연결하고 한대는 ping, 다른 두대는 동시에 속도 측정을 시도했습니다.
ping을 0.3초마다 보내도록 while문으로 반복시켜뒀습니다.
speed.cloudflare.com을 두 컴퓨터에서 동시에 실행했습니다.
test3.
이번엔 한대만 연결하고, 연결한 컴퓨터로 ping을 계속 보내면서
그 컴퓨터로 speed.cloudflare.com을 실행합니다.
결론
ping의 편차, 핑의 평균, 최대 다운속도, 다운속도 편차, 평균 다운속도(speed.cloudflare.com에서 각 회의 최대 속도 평균), 최대 업로드, 업로드 편차, 평균 업로드 모두 openvpn이 더 나은 성능을 보였습니다.
사실 최대 속도는 freetier가 50Mbps까지만 제공하기 때문에 거의 동일합니다.
하지만 편차는 분명 wireguard가 더 크네요.
즉, 최솟값이 더 낮습니다.
아주 미약하게.. 2, 3% 정도로 오차범위라고 생각하지만
3가지 테스트를 모두 3번씩 수행했는데, 모두 wireguard가 낮은거 보면 wireguard가 openvpn보다 더 높은 리소스가 사용된다고 생각합니다.
그리고 openvpn이 업데이트 되었는지, oracle free tier의 스펙이 좋아졌는지 모르겠지만
이젠 openvpn에서도 옆에서 두대 세대 네대가 네이버 홈페이지 새로고침 해도 핑이 튀어오르지 않는다는 것을 깨닳았습니다.
다시 말해 다른 vpn 필요성이 없어졌죠..
여담.
구글에 wireguard vs openvpn이라고 검색해보면 다들 무슨 4,5배씩 빨라졌다고 합니다.
최대 속도는 오라클 free tier 성능의 한계 때문에 더 못올리겠지만, 최솟값과 편차는 분명히 wireguard가 더 나쁩니다.
제가 잘못 세팅한걸까요?
아니면 docker라서 느려진걸까요?
아무래도 network가 bridge라서 그런걸까요?
openvpn은 host에 설치되서 그런걸까요?
어째 제 결과는 구글에서 나오는 결과와 다른 것일까요?
조금 의문이 많이 남는 테스트였습니다.
만약 저의 세팅이 wireguard에게 불리하게 된것 같다면 지적해주세요.
다시 테스트 해보겠습니다
저는 더 낮은 핑을 위해 개선하고 싶으므로 openvpn을 불리하게 하여 평등하게 만드는 방법보다, wireguard를 빠르게 만드는 세팅을 주로 지적해주시면 좋겠습니다.
전 이 말 하나 밖에 안나옵니다.
이왜진..
구글 검색 결과 상위 5개가 전부 좋다길래 와이어 가드는 악성 sw 아닐까 의심까지 들정도로..
너무 많은 분들이 wireguard를 치켜세워주던데..
전 진짜 이 말 하나만 나옵니다.
이왜진..
사용하는 자원대비 속도는 월등함을 아실 수 있을겁니다.
뭐 제가 설득하거나 반박할 필요는 전혀 없지만서도,
n3150에서 openvpn 100mbps정도 나오고,
wireguard로는 500mbps가 너끈히 나옵니다.
arm으로 해도 수치는 2배가까이 차이나고요.
다만 wireguard는 udp밖에 안된다는 점이 단점이고
tap으로 bridge 구성 등이 안 되는 문제도 있네요.
오라클 프리티어는 그보다 더 낮은 사양입니다.ㅎㅎ
openvpn도 udp로 세팅 되어있어서 상관 없습니다.
요즘 tcp를 사용하는게 이상할 정도의 시대(?)이기도 하고..
어차피 와이어가드가 TCP가 된다 해도 UDP 설정하긴 했을겁니다.ㅎㅎ
모두가 딩딩딩딩딩님처럼 말씀하시긴 하던데..
저의 테스트는 전혀 다른 결과를 보여주니..ㅠㅠ
혹시 세팅에는 어떤 옵션들을 사용했었는지 알려주실 수 있나요?
-------------추가
찾아보니 openvpn은 단일 코어만 지원한다고 합니다.
코어수가 적으면 적을수록 wireguard와 openvpn의 성능 차이가 적어지느 것 같습니다.
free tier는 SMT 포함 2스레드입니다.
멀티 스레딩이 되어서 두 코어를 갈구던, 한코어만 갈구던 최대 성능은 같다는 이야기죠..
wireguard가 더 가벼운건 아니고, 더 많이 사용할수 있게 만들어져있는 것 같아보입니다.
(제 추측입니다)
같은 하드웨어에서 openvpn vs wireguard를 하게 되면 하나의 코어당 성능은 관계 없이
코어가 단일 코어면 openvpn이 더 낫고, 듀얼코어만 되더라도 wireguard가 더 나은것 같아보입니다.
단순 추측이지만, 제 생각엔 너무 사양이 낮은 나머지 차이가 없는듯 합니다.
wireguard는 여러 프로세스가 작동하는데 더해보면 17% 가까이.
openvpn의 경우 16%를 넘지를 않네요.
openvpn에 fast io나 버퍼 크기 같은 옵션을 수동으로 지정해줘서 그런걸까요..
아니면 openvpn aes는 amd epic cpu에서 하드웨어 가속으로 암호화가 되거나..?
아니면 wireguard는 멀티 스레딩이 되지만, openvpn은 안되서 코어수가 적은 컴퓨터에서 차이가 안느껴지는 것일수도..?
오라클 뿐만 아니라 어떤 저성능 vps를 사용하셔도 이보다 성능이 높습니다.
코어수 많아봤자 이고요.
openvpn이든 wireguard든 50mbps는 10년된 n270쓰는 넷북에서도 나오는 수치입니다.
6년된 바나나파이에서도 50mbps는 차고 넘칩니다.
따라서 50mbps로 비교하셔봤자 아무소용 없고..
수많은 사람들이 wireguard와 무슨 연관이 있어서 성능이 좋다고 하는것이 아니라는점 상기하셨으면 좋겠고,
더는 말을 줄이겠습니다.
응답속도만을 갖고 말씀하시는거면, 주로 성능 지표로 삼는 throughput과는 아무 관계도 없으므로, 양자간 직접 비교가 되지 않습니다.
응답속도는 라우팅을 어느경로로 타냐, 혹은 다른 어떤 요소로도 달라질수 있습니다.
따라서 ping 비교는 vpn 프로토콜간 성능 비교와는 무의미합니다.
기가망으로 네할렘 2코어준 pfsense vm에 openvpn, wireguard 비교하면 160Mb/s , 330Mb/s 정도 차이 나더군요(지역이 다른 유플러스-유플러스 기준)