Raspberry pi 无法访问树莓皮fhem web界面
今天我在Raspberry Pi上安装了Arch Linux,并开始安装fhem。使用yaourt安装fhem后,我定制了fhem配置,编写了systemd*.service文件,并使用以下方式启动了服务:Raspberry pi 无法访问树莓皮fhem web界面,raspberry-pi,iptables,archlinux,systemd,Raspberry Pi,Iptables,Archlinux,Systemd,今天我在Raspberry Pi上安装了Arch Linux,并开始安装fhem。使用yaourt安装fhem后,我定制了fhem配置,编写了systemd*.service文件,并使用以下方式启动了服务: sudo systemctl start fhem sudo systemctl enable fhem 然后,我使用systemctl status fhem检查了服务器状态,它提供了以下信息: fhem.service - FHEM Perl Server Loaded: loa
sudo systemctl start fhem
sudo systemctl enable fhem
然后,我使用systemctl status fhem检查了服务器状态,它提供了以下信息:
fhem.service - FHEM Perl Server
Loaded: loaded (/etc/systemd/system/fhem.service; enabled)
Active: inactive (dead) since Thu 2013-10-17 15:20:42 CEST; 11min ago
Process: 480 ExecStart=/usr/bin/perl fhem.pl fhem.cfg (code=exited, status=0/SUCCESS)
Main PID: 480 (code=exited, status=0/SUCCESS)
Oct 17 15:20:41 alarmpi systemd[1]: Started FHEM Perl Server.
所以服务器似乎在运行,所以我切换到我的桌面PC,并试图通过将firefox指向192.168.1.77:8083来访问fhem web界面:
所以我试着用ssh连接树莓Pi,效果很好。有人知道为什么我不能连接到fhem的web界面吗?请在下面找到我的配置文件
/etc/fhem/fhem.cfg
attr global logfile ./log/fhem-%Y-%m.log
attr global modpath . # where our FHEM directory is
attr global statefile ./log/fhem.save # where to save the state of the devices
attr global verbose 3 # "normal" verbosity (min 1, max 5)
define telnetPort telnet 7072 global # our TCP/IP port
define WEB FHEMWEB 8083 global
define WEBphone FHEMWEB 8084 global
attr WEBphone stylesheetPrefix smallscreen
define WEBtablet FHEMWEB 8085 global
attr WEBtablet stylesheetPrefix touchpad
# Fake FileLog entry, to access the fhem log from FHEMWEB
define Logfile FileLog ./log/fhem-%Y-%m.log fakelog
define autocreate autocreate
attr autocreate autosave
attr autocreate device_room %TYPE
attr autocreate filelog ./log/%NAME-%Y.log
attr autocreate weblink
attr autocreate weblink_room Plots
# Disable this to avoid looking for new USB devices on startup
define initialUsbCheck notify global:INITIALIZED usb create
/etc/systemd/system/fhem.service
[Unit]
Description=FHEM Perl Server
After=syslog.target network.target
[Service]
User=fhem
WorkingDirectory=/opt/fhem
ExecStart=/usr/bin/perl fhem.pl fhem.cfg
Type=simple
[Install]
WantedBy=multi-user.target
/etc/iptables/iptables.rules
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p udp -m udp --dport 123 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 123 -j ACCEPT
COMMIT
我能够使用以下systemd服务文件(主要修改为“Type=forking”)实现您试图实现的目标: 另外,由于您似乎正在使用“fhem”用户,请确保该用户对所需文件具有足够的权限(我必须至少授予它对日志目录的写访问权限)
仅供参考,AUR中为fhem提供了一个包,尽管它缺少此服务文件。首先,该服务未运行Active:inactive(dead),自2013-10-17 15:20:42 CEST以来;11分钟前的进程:480 ExecStart=/usr/bin/perl fhem.pl fhem.cfg(code=exited,status=0/SUCCESS)如果存在由
fhem
生成的任何日志文件,请查看其退出原因。也许fhem
正在分叉?但是,shensystemd
应该捕获它的PID。日志文件只是告诉我它加载了配置文件fhem.cfg。就这样,没有更多的提示了。
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -p udp -m udp --dport 123 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
-A OUTPUT -p udp -m udp --sport 123 -j ACCEPT
COMMIT
[Unit]
Description=FHEM Perl Server
After=syslog.target network.target
[Service]
Type=forking
User=fhem
WorkingDirectory=/opt/fhem
ExecStart=/usr/bin/perl fhem.pl fhem.cfg