English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Centos7与Centos6.x有了很大的不同。
为了给一台服务器装上远程桌面,走了不少弯路。写这篇博文,纯粹为了记录,以后如果遇到相同问题,可以追溯。
1、假定你的系统没有安装vnc的任何软件,那么,首先安装vnc
yum -y install tigervnc-server tigervnc
2、Centos7之前的系统,如果安装vnc一般都需要配置
[root@localhost ~]# cat /etc/sysconfig/vncservers # THIS FILE HAS BEEN REPLACED BY /lib/systemd/system/[email protected]
但是,如上所述,Centos7需要配置的文件在
[root@localhost ~]# ll /lib/systemd/system/[email protected] -rw-r--r--. 1 root root 1744 Jun 10 14:15 /lib/systemd/system/[email protected]
3、文件内有如下提示
# Quick HowTo: # 1. Copy this file to /etc/systemd/system/vncserver@:<display>.service # 2. Edit <USER> and vncserver parameters appropriately # ("runuser -l <USER> -c /usr/bin/vncserver %i -arg1 -arg2") # 3. Run `systemctl daemon-reload` # 4. Run `systemctl enable vncserver@:<display>.service
4、复制一份文件,并改名为vncserver@:1.service
[root@localhost ~]# cp /lib/systemd/system/[email protected]/lib/systemd/system/vncserver@:1.service
5、将文件中的<User>用你当前的用户替换,将%i替换为1
[Unit] Description=خدمة سطح مكتب عن بعد (VNC) After=syslog.target network.target [Service] Type=forking # تنظيف أي ملفات موجودة في بيئة /tmp/.X11-unix ExecStartPre=/bin/sh -c '/usr/bin/vncserver -kill :1 > /dev/null 2>&1 || :' ExecStart=/sbin/runuser -l root -c "/usr/bin/vncserver :1 -geometry 1280x720 -depth 24" PIDFile=/root/.vnc/%H%i.pid ExecStop=/bin/sh -c '/usr/bin/vncserver -kill :1 > /dev/null 2>&1 || :' [Install] WantedBy=multi-user.target
6- تحديث systemctl
systemctl daemon-reload
7- قم بتعيينها للبدء التلقائي
systemctl enable vncserver@:1.service
8- قم ببدء خدمة vnc
systemctl start vncserver@:1.service
9- أضف المنفذ المطلوب 5901 إلى iptables (لاحظ، إذا كان هناك مستخدمون آخرون، يجب أيضًا إضافة المنفذ. منفذ vnc هو 5900 + n بشكل افتراضي)
[root@localhost system]# cat /etc/sysconfig/iptables # تكوين نموذجي لخدمة iptables # يمكنك تعديل هذا يدويًا أو استخدام system-config-firewall # لا تدعونا نضيف منافذ/خدمات إضافية إلى هذا التكوين الافتراضي *مصفى :قبول الدخول [0:0] :مقدمة تقبّل [0:0] :OUTPUT ACCEPT [0:0] -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -i lo -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 5901 -j ACCEPT -A INPUT -j REJECT --reject-with icmp-host-prohibited -A FORWARD -j REJECT --reject-with icmp-host-prohibited COMMIT
ملاحظة:
1- إذا لم تقم بتهيئة وتشغيل جدار الحماية، فإن الاتصال باستخدام VNC Viewer سيؤدي إلى ظهور خطأ: "connect: Connection timed out(10060)"
2- هذا المقال يعتمد على المستخدم root، إذا كان المستخدمون الآخرون بحاجة إلى الدخول، فيجب أيضًا نسخ الملف
cp /lib/systemd/system/[email protected]/lib/systemd/system/vncserver@:2.service
في نفس الوقت، قم بتعديل %i إلى 2، وأقم بإنشاء vncpasswd للمستخدم المطلوب
3- يمكنك الوصول من خلال UltraVNC، TigerVNC أو RealVNC Viewer، استخدمت هذه الأدوات الثلاث على win7 وتمكنت من الاتصال بها
شكرًا على القراءة، آمل أن تكون قد ساعدتكم، شكرًا لدعمكم لموقعنا!