龙空技术网

通过反向代理认证避免把家中宽带运营商IPTV转发外网后被扫描滥用

愉悦de晚风 3176

前言:

眼前同学们对“apache403禁止访问”大约比较注意,姐妹们都需要剖析一些“apache403禁止访问”的相关文章。那么小编同时在网络上网罗了一些有关“apache403禁止访问””的相关文章,希望你们能喜欢,兄弟们快快来学习一下吧!

有时会想在外网访问家中的IPTV电视直播,把家里的IPTV直播做了外网转发,可以从互联网访问家里的IPTV电视直播。IPTV家庭网络打通及相关配置可以参考笔者之前的文章。

实现外网转发后,可以通过iptv服务的动态域名(下文中iptv服务的动态域名用 iptv.domain.ddns 示例,实际使用需要代替成您自己实际使用的iptv动态域名)来访问家里IPTV电视直播,比如下面的地址格式:

在互联网上在电脑上使用IPTV播放器即可远程访问家中的IPTV电视直播节目。

从互联网访问家中IPTV

使用起来是很方便,但无意中发现总有人会在互联网上扫描家里的IPTV电视直播服务。自家的宽带小水管可承受不起太多人的使用。怎么避免这样的扫描和滥用呢?一个简单的方法是在家庭路由器上设置反向代理,通过反向代理来访问家中的IPTV电视直播。在反向代理上设置一个简单用户名密码认证,必须使用正确的用户名密码才能访问家中的IPTV电视直播。这时上面的访问地址就会变成:

这里的用户名密码是自己配置的,可以随时更改。反向代理的端口号(8118)也是配置的。

家里用的是OpenWrt的路由器,23.05的版本。使用的是nginx做反向代理,下面是配置的过程。

一、在路由器安装nginx, 替代原来的uhttpd做Web服务器及用作反向代理

选择使用nginx来作反向代理,没必要在路由器上运行两个Web服务器,索性就把默认的uhttpd替换成nginx,路由器的管理控制台也使用nginx。当然替代不是必须的。

安装代替很简单,在OpenWrt管理界面的软件包中,先更新列表,然后搜索安装 luci-nginx 就可以了,系统会自动安装对应的依赖包。

安装 luci-nginx

如何使用命令行,使用下面命令:

opkg updateopkg install luci-nginx
二、配置nginx反向代理,使用动态域名创建iptv虚拟主机

nginx的配置在 /etc/nginx 目录下。默认已经配置好OpenWrt的管理Web服务器。可以在 /etc/nginx/conf.d 下创建自己扩展的Web服务器。在 /etc/nginx/conf.d目录创建一个 iptv.conf 配置文件,内容如下:

server_names_hash_bucket_size 64;server {    listen 8118;    listen [::]:8118;    server_name _default_iptv;    return 403;}server {    listen 8118;    listen [::]:8118;    server_name iptv.domain.ddns;    location / {        auth_basic "Restricted Content";        auth_basic_user_file /etc/nginx/user.pass;        proxy_pass ;        proxy_set_header Host $host;        proxy_set_header X-Real-IP $remote_addr;        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;        proxy_set_header X-Forwarded-Proto $scheme;    }}

配置文件中的一些关键说明:

配置中使用8118作为iptv虚拟主机的访问端口,可以使用其它空闲端口。配置中同时监听了ipv4及ipv6的地址,您可以根据自己实际情况修改。需要把 iptv.domain.ddns 代换成您自己实际使用的动态域名 是内网中iptv组播转单播服务地址,也需要代换成您家里实际的iptv转发服务地址配置文件中的 /etc/nginx/user.pass 是访问认证用的用户密码文件,下面会讲如何创建。配置文件中第一个 server 配置是为8118端口设置的一个默认虚拟主机。如果用扫描软件通过ip或者不正确的域名访问, 比如访问 , 会返回403禁止访问。这样也避免外面的iptv服务扫描。三、生成认证用的用户密码配置文件 /etc/nginx/user.pass

需要使用htpasswd命令生成用户密码文件,htpasswd命令在系统中不存在,可以通过安装 apache-utils 包安装,可以在软件包管理界面中安装,也可以通过下面命令安装:

opkg updateopkg install apache-utils

安装完成后,使用下面命令创建user.pass文件,再创建一个iptvuser用户:

cd /etc/nginxhtpasswd -c user.pass iptvuser

系统会提示为iptvuser用户设置密码,输入确认密码即可。

四、设置防火墙规则,允许从外网访问iptv虚拟主机服务

在OpenWrt中创建防火墙通信规则。

创建防火墙规则

整个配置完成后,重新启动nginx服务。

/etc/init.d/nginx restart

服务重启完成后。就可以使用反向代理从外网用动态域名访问家中的iptv电视直播服务了。必须通过配置的域名访问iptv服务,如果访问地址中没有包括用户名密码,比如在电脑上用PotPlayer访问 , 系统会弹出提示用户名密码输入

用户名密码输入

输入正确用户名密码后,即可正常访问对应的电视直播内容。

认证通过后正常访问电视直播内容

可以把用户名密码嵌入到访问地址中,省去访问过程中还需要输入。

可以用这样的地址创建m3u或者txt的播放列表,方便使用。

标签: #apache403禁止访问