【发布时间】:2021-04-09 14:01:49
【问题描述】:
我正在尝试使用socat做一个http代理,但是我不知道为什么请求突然停止,并且网页中没有任何内容。 它只是将 HTTP 请求从 bowser 传输到 Web 服务器。然后返回响应。
socat TCP4-LISTEN:666,fork EXEC:"./httproxy.sh"
重定向端口 80 到 666
iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 666
httproxy.sh
#!/usr/bin/env bash
function main() {
REQUEST_HEADERS=()
read -r line
line=${line%%$'\r'}
read -r REQUEST <<< "${line}"
while IFS= read -r line; do
line=${line%%$'\r'}
[ -z "${line}" ] && break
REQUEST_HEADERS+=( "${line}" )
done
printf "${REQUEST}\r\n" &> request.log
for ((i = 0; i < ${#REQUEST_HEADERS[@]}; i++)); do
[[ "${REQUEST_HEADERS[$i]}" =~ ^Host:[[:space:]](.*) ]] && IP=${BASH_REMATCH[1]}
printf "${REQUEST_HEADERS[$i]}\r\n" &>> request.log
done
printf "$(cat request.log)\r\n\r\n\r\n" | nc ${IP} 80
}
main
回应:
HTTP/1.1 200 OK....
{HTTP Content}
Immediately after the content:
HTTP/1.1 405....
我已经用大量的“Http”网页对其进行了测试,有时会到达 html 内容 . 请帮帮我。
【问题讨论】: