我拥有一些网站,也从事一些网站开发工作。但是,我正在尝试创建一种方法,通过这种方法,我可以在我的服务器上创建一个网页,然后使用它来浏览其他网站。这样做有几个原因 - 隐藏我的 IP、安全性、绕过防火墙等等。
我无法使用 iFrame,因为内容仍会下载到本地设备。我想要的解决方案是将网站下载到服务器,渲染并显示在我的网页上,这样所有内容都直接从我的服务器提供。这就像网页内的浏览器一样。
有人能帮我解决这个问题吗?我可以做一些基本的网页编码,这可能会有所帮助,我不需要花哨的东西,只要一些简单和基本的东西就行。
答案1
如果您具有服务器的管理权限,HTTP 中继将会执行您想要的操作。
您可以使用索卡特
socat TCP4-LISTEN:www TCP4:www.domain.org:www
安装一个简单的 TCP 端口转发器。使用 TCP4-LISTEN,它会监听本地端口“www”,直到有连接进入,接受该连接,然后连接到远程主机 (TCP4) 并开始数据传输。它不会接受第二个连接。
socat -d -d -lmlocal2 \ TCP4-LISTEN:80,bind=myaddr1,su=nobody,fork,range=10.0.0.0/8,reuseaddr \ TCP4:www.domain.org:80,bind=myaddr2
TCP 端口转发器,每一端都绑定到另一个本地 IP 地址(绑定)。此示例通过在每个 accept() 之后分叉一个新进程来处理几乎任意数量的并行或连续连接。它通过在分叉后对用户 nobody 进行审核来提供一点安全性;它只允许来自私有 10 网络(范围)的连接;由于重用地址,它允许在主进程终止后立即重新启动,即使某些子套接字未完全关闭。使用 -lmlocal2,socat 会将日志记录到 stderr,直到成功到达 accept 循环。进一步的日志记录将定向到具有功能 local2 的 syslog。
也可以看看
https://stackoverflow.com/questions/34791674/socat-port-forwarding-for-https
答案2
我设法解决了这个问题。虽然有点粗糙,但还是可以正常工作,尽管有时页面以纯文本形式呈现。但就我的目的而言,这不是问题。
这是我使用 file_get_contents PHP 函数解决两页流程的解决方案。
index.php 的内容:
<body>
<h1>browser</h1>
/* gets the data from a URL */
?>
<form action="/webb/browse.php" method="post">
url: <input type="text" name="url"><br>
<input type="submit">
</form>
Welcome <?php echo $_POST["url"]; ?><br>
</body>
browser.php 的内容
<body>
<h1>browser</h1>
/* gets the data from a URL */
?>
<form action="/webb/browse.php" method="post">
url: <input type="text" name="url"><br>
<input type="submit">
</form>
url - https://<?php echo $_POST["url"]; ?><br>
<?php
$url = $_POST["url"];
$homepage = file_get_contents('h'.$url);
echo $homepage;
?>
</body>
如果有人愿意改进它,我们欢迎他们,但这对我来说有用!