<div dir="ltr"><div style="font-size:12.8px">Here is some information about my squid version,</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Squid Cache: Version 3.5.22-20161115-r14113<br></div><div style="font-size:12.8px">Service Name: squid</div><div style="font-size:12.8px">configure options:  '--prefix=/usr' '--localstatedir=/var/squid' '--libexecdir=/lib/squid' '--srcdir=.' '--datadir=/share/squid' '--sysconfdir=/etc/squid' '--with-default-user=proxy' '--with-logdir=/var/log/squid' '--with-pidfile=/var/run/<wbr>squid.pid' '--with-openssl' '--enable-ssl-crtd' '--enable-inline' '--disable-arch-native' '--enable-async-io=8' '--enable-storeio=ufs,aufs,<wbr>diskd,rock' '--enable-removal-policies=<wbr>lru,heap' '--enable-delay-pools' '--enable-follow-x-forwarded-<wbr>for' '--enable-url-rewrite-helpers=<wbr>fake' '--enable-ecap'</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">My squid config file is located at, <a href="http://pastebin.com/raw/LvDxEF4x" target="_blank">http://pastebin.com/raw/<wbr>LvDxEF4x</a></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Now the issue is whenever someone requests a page which contains web socket requests response is always bad request. </div><div style="font-size:12.8px">Here is an example,</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Request URL:wss://<a href="http://w4.web.whatsapp.com/ws" target="_blank">w4.web.whatsapp.com/<wbr>ws</a></div><div style="font-size:12.8px">Request Method:GET</div><div style="font-size:12.8px">Status Code:400 Bad Request</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Response Headers</div><div style="font-size:12.8px">#################</div><div style="font-size:12.8px">Connection:keep-alive</div><div style="font-size:12.8px">Date:Sat, 17 Dec 2016 09:05:36 GMT</div><div style="font-size:12.8px">Transfer-Encoding:chunked</div><div style="font-size:12.8px">X-Cache:MISS from Proxy</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">Request Headers</div><div style="font-size:12.8px">#################</div><div style="font-size:12.8px">Accept-Encoding:gzip, deflate, sdch, br</div><div style="font-size:12.8px">Accept-Language:en-US,en;q=0.8</div><div style="font-size:12.8px">Cache-Control:no-cache</div><div style="font-size:12.8px">Connection:Upgrade</div><div style="font-size:12.8px">Host:<a href="http://w4.web.whatsapp.com/" target="_blank">w4.web.whatsapp.com</a></div><div style="font-size:12.8px">Origin:<a href="https://web.whatsapp.com/" target="_blank">https://web.whatsapp.<wbr>com</a></div><div style="font-size:12.8px">Pragma:no-cache</div><div style="font-size:12.8px">Sec-WebSocket-Extensions:<wbr>permessage-deflate; client_max_window_bits</div><div style="font-size:12.8px">Sec-WebSocket-Key:<wbr>kzrB2ZcMHDAqvjDNXnjL/w==</div><div style="font-size:12.8px">Sec-WebSocket-Version:13</div><div style="font-size:12.8px">Upgrade:websocket</div><div style="font-size:12.8px">User-Agent:Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.75 Safari/537.36</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">My question is how we can work with web socket requests in squid or if not by pass them squid. My squid instance is in interception mode and requests are intercepted at instance via iptables and forwarded to squid using below rules,</div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><div>SQUIDIP=192.168.1.1</div><div><br></div><div># your proxy listening port</div><div>SQUIDHTTPPORT=3128</div><div>SQUIDHTTPSPORT=3129</div><div><br></div><div><br></div><div>iptables -t nat -A PREROUTING -s $SQUIDIP -p tcp --dport 80 -j ACCEPT</div><div>iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port $SQUIDHTTPPORT</div><div><br></div><div>iptables -t nat -A PREROUTING -s $SQUIDIP -p tcp --dport 443 -j ACCEPT</div><div>iptables -t nat -A PREROUTING -p tcp --dport 443 -j REDIRECT --to-port $SQUIDHTTPSPORT</div><div><br></div><div>iptables -t nat -A POSTROUTING -j MASQUERADE</div><div>iptables -t mangle -A PREROUTING -p tcp --dport $SQUIDHTTPPORT -j DROP</div><div>iptables -t mangle -A PREROUTING -p tcp --dport $SQUIDHTTPSPORT -j DROP</div></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px"><br></div><div style="font-size:12.8px">If anyone can help me with this it would be really awesome. Thanks for your support.</div></div>