سلام و درود
بنده یک VPS تهیه کردم و از طریق SSH بهش وصل میشم. خواستم از طریق Remote Desktop Connection بهش وصل شم تا دسترسی گرافیکی داشته باشم. قبلش Gnome Desktops و XRDP رو روی VPS نصب کردم اما هرچقدر تلاش میکنم با Remote Desktop Connection به محیط گرافیکی وصل شم هیچ GUI برام بالا نمیاد. ضمنا یوزر و پسوردم رو هم درست میزنم و ایرادی نمیگیره.
تابحال به این مشکل برخوردین ؟
تو سایت های فارسی و انگلیسی فقط اموزش نصب دسکتاپ بود اما از این مشکل عدم نمایش Desktop چیزی پیدا نکردم
سلام.
اولا که راهاندازی سیستم گرافیکی روی سرور اشتباهه. کلی از منابع سیستم رو درگیر میکنه. سرور باید از طریق ssh مدیریت بشه.
پیشنهاد میکنم کار کردن با ترمینال لینوکس رو یاد بگیرید. اصلا کار سختی نیست.
احتمال میدم مشکلی که دارید اینه که محیط گرافیکی رو نصب کردید ولی فعالش نکردید.
برای نصب محیط گرافیکی روی هر لینوکسی (ربطی به سرور یا دسکتاپ بودن نداره) باید یه سری نرمافزار نصب بشه مثل Xorg server و بعد، نصب یه Desktop Environment مثل gnome و البته برای اینکه وقتی سرور روشن میشه، ما محیط گرافیکی ببینیم برای لاگین، یه Display Manager نیاز داریم که از اونجایی که شما gnome نصب کردید، بهتره gdm نصب کنید.
بعد از نصب، احتمالا باید با systemctl اونو فعال کنید. systemctl start gdm
برای اینکه وقتی سرور روشن میشه، به طور اتوماتیک این عمل انجام بشه، systemctl enable gdm
پویای عزیز سلام.
اول از همه ممنونم بابت راهنمایی ارزندت. من عاشق کامند لاین هستم و حال میکنم از طریق ترمینال کد میزنم. اصلا همین ترمینال بود که باعث شد روی بیارم سمت لینوکس. چون میدیدم حجم عظیمی از کارها با چند خط کد بدون سربار اضافی انجام میشه.
حقیقتش من فکر کردم دسکتاپ گرافیکی بهتر هست واسه کار و از اشتباه بودنش بی خبر بودم. چون اطلاع نداشتم منابع سیستم درگیر میشه و این خودش ضعفه.
فعلا با ssh پیش میرم. حقیقتش دارم Docker کار میکنم و داشتم با حال و هوای کانتینرها آشنا میشدم.
میگم پویا جان امکانش هست یکجا تمام داده های موجود روی VPS رو حذف کنیم؟
خوب، شما سیستم عامل دسکتاپ، ویندوز دارید؟
با putty خیلی سخته! اگه رو کامپیوتر، لینوکس داشته باشید، و با terminal emulator های لینوکس، ssh بزنید خیلی راحتتره. Putty اذیت میکنه.
ssh [email protected]<ip>
با terminal emulator میشه خیلی راحت چندتا ssh زد به سرور و هرکدوم یه کاری انجام بده.
مثلا یکی ادیتور باز کنه کانفیگ nginx ادیت کنه، یکی دیگه nginx -t و systemctl reload nginx بزنه بدون اینکه لازم باشه همش از ادیتور بیایم بیرون و کانفیگها رو تست کنیم.
پویا جان سیستم من Dual boot هست و اوبونتو نسخه ۱۸.۰۴ LTS دارم. منظورت از Terminal Emulator همون ترمینال خود لینوکس هست؟
چون تو خود ترمینال لینوکسم [email protected] address زدم پسورد ست کردم وصل شدم اما حس میکنم سرعت کُند هست. موقع کامند زدن انگاری خیلی کند میشه
نسخهی TL;DR
یه بار دیگه تست کنید. مطمئنا سرعت بالاتره.
احتمال میدم یه مشکل کوتاه مدت باعث شده بود که سرعت کار با ssh داخل لینوکس پایینتر باشه. چون داخل putty هم در حقیقت همون نرمافزار (نرمافزار ssh) داره اجرا میشه. نه چیز دیگهای.
اگه بخوام یه توضیح دقیق بدم، باید بگم:
فقط زمانی میتونید ترمینال لینوکس رو ببینید، که دکمههای ALT+CTRL+F1 تا F7 رو بزنید. (۷تا ترمینال)
اینا واقعا ترمینال هستن (ترمینال مجازی). خارج از محیط گرافیکی، و در حقیقت محیط گرافیکی ما، داخل یکی از این ترمینالها اجرا شده (درمورد اوبونتو و اکثر توضیعها، ALT+CTRL+F7)
ترمینال فیزیکی، زمانی دیده میشه که شما یه کامپیوتر رو از طریق serial port وصل کنید به یه کامپیوتر دیگه. اونوقت میتونید از طریق پورت سریال، به ترمینال فیزیکی اون کامپیوتر دسترسی پیدا کنید. (کاری که ما برای کانفیگ raspberry pi انجام میدیم زمانی که نتونیم rasp رو به مانیتور وصل کنیم)
نرمافزارهای terminator ،yakuake، gnome terminal، terminalogy، konsole، xterm و… که داخل محیط گرافیکی اجرا میشن و به ما اجازهی کار با ترمینال رو میدن، در حقیقت یک terminal emulator هستن. (من از terminator و yakuake استفاده میکنم. terminalogy هم خوشگله)
هرکدوم از اینا یه سری قابلیت دارن مثلا امکان split کردن صفحه، یا ایجاد tab (مثل بروزر) و یه سری پلاگین هم میتونن داشته باشن مثلا یه پلاگینی که من خیلی دوست دارم، از صفحهی terminator اسکرین شات میگیره. هم باحاله و هم خیلی وقتا راحتتر از اینه که اسکرین شات از کل صفحه بگیرم و اون تیکه رو برش بزنم و تو تلگرام برای یکی از دوستام بفرستم!
یه سریاشون یه کم کندتر از بقیه هستن. به عنوان مثال، ترمینالهایی که بر پایهی kde ساخته شدن (konsole) از ترمینالهای gnome کندتر هستن. ولی این کند بودن، چیزی نیست که در مورد استفادهی شما، به چشم بیاد! زمانی کند بودنش مشخص میشه که ما میخوایم مثلا یه نرمافزار رو اجرا کنیم که یه loop توش داره و یه چیزی رو باید print کنه. اگه یه نرمافزار اینطوری بنویسید با یه loop زیاد (چندهزارتا) و تست کنید میبینید که konsole از gnome terminal کندتره توی نمایش دادن خطها. (دیرتر تموم میشه)
کندی سرعتی که شما مشاهده کردید، احتمالا موقت و لحظهای بوده.
چون درمورد این استفادهی شما، مهمترین فاکتور تعیین کنندهی سرعت (که تو مهندسی بهش bottleneck میگن) در حقیقت اینترنته! این مساله که کامپیوتر شما تا سرورتون، یه ping خیلی بزرگ داره.
اگه سرور، داخل اتاقتون باشه و به یک router وصل باشید، احتمالا ping در حد 1ms باشه. این در حالیه که من تا سرور خارج از کشورم (کانادا) 249ms پینگ دارم و تا یه سرور دیگه (تهران) 7.8ms پینگ دارم!
و این مقدار پینگ، زمانی که از سیستمهای تغییر ip (تحریم شکن) استفاده کنم، کاملا متفاوته. زمانی که یه اختلال (نویز) روی شبکهی مخابرات باشه، احتمالا چند برابر میشه و خیلی از packetها از دست میرن (packet lost) و نیاز هست که یه سری ریکوئستها دوباره زده بشه (من متوجه این موضوع نمیشم. نرمافزار خودش اینکارو انجام میده)
من توی یه شرکت کار میکردم که پینگ موبایل تا لپتاپم یه وقتایی تا 4000ms (چهار ثانیه) بالا میرفت! در حالی که هردو دستگاه به یه wifi وصل بودن! (مشکل از firewall بود احتمالا. یه کم دستکاریش کردن، مشکل حل شد)
اینو گفتم که بگم مسالهی ping فقط به بیرون ارتباط نداره. یه وقتایی از شبکهی داخلیه. (مثلا اگه حدود ۶۰ نفر همزمان به wifi خونهی ما وصل بشن، رم دستگاه (مودم) پر میشه و ping همه بالا میره. حتی اگه کسی در حال دانلود نباشه و سرعت آزاد باشه)
پاورقی:
حالا از ping بگذریم، یه چیز دیگه هم هست که روی سرعت تاثیر میذاره. اونهم اینه که ما برای برقراری ارتباط ssh نیاز به رمزنگاری و رمزگشایی RSA داریم. یه الگوریتم خیلی قوی و خیلی سنگین و البته خیلی «غیر قابل شکستن» (بستگی به طول کلید داره)
اینی که گفتم ربطی به کاری که شما انجام میدید نداره چون هم توی ویندوز و هم داخل لینوکس، مسالهی rsa هست و فاکتور مشترکیه. فقط خواستم یه لینکی بزنم به RSA. شاید علاقه داشته باشید درموردش مطالعه کنید. خیلی باحاله و آدم چیزای زیادی درمورد رمزنگاری یاد میگیره و وسوسه میشه یه نرمافزار چت peer to peer بنویسه
آقا بسی دقیق و کامل توضیحات ارائه فرمودی و از این جهت مشعوف شدم. حقیقتش این تکنیک رمزگذاری RSA رو تو کتابی به اسم مهندسی اینترنت چندسال قبل خونده بودم زمان لیسانس. چیز خفنی بود و هست واسه خودش. الان خود ترمینال لینوکس امکان Multi tab داره. حالا اگه بخوای توصیه کنی یه ترمینال قشنگ واسه کامندینگ داشته باشیم کدوم رو ذکر میکنی ؟
ضمنا مرسی بابت یادآوری مجدد RSA
باید دوباره مطالعه اش کنم چون خیلی چیزا باید مرور شه تو ذهنم
همیشه فکر میکردم اونایی که Cryptography کار میکنن ادمای عجیب و نابغه تو ریاضیات هستن
الانم همین طور
ولی خطهای خوبی بهم دادی
از حرفهات برکت می باره داداش
همین بحث امنیت رمزگذاری تو دیتابیس خیلی مهمه
من terminator رو دوست دارم.
و terminalogy هم خیلی قشنگه.
یه سری ترمینال هست مثل yakuake که بهشون میگن «drop down terminal» که فضایی از مانیتور رو اشغال نمیکنه و وقتی میخوایم، از بالای صفحه باز میشه (با یه Short-cut که من روی scroll lock ست کردم) و بعد که کارمون تموم شد بسته میشه.
من معمولا وقتی میخوام با سرور کار کنم، از termanator استفاده میکنم و صفحه رو به چند قسمت split میکنم (معمولا لازمه چندتا سرور رو همزمان کانفیگ کنم و کانفیگها مشابه هم هستن) بین سرورها tab میزنم و جابهجا میشم.
از yakuake هم برای نگه داشتن repl استفاده میکنم یا کارهایی که یه لحظه با ترمینال کار دارم و بعدا میخوام ببندمش. یا کاری که قراره ترمینالم رو اشغال نگه داره ولی نمیخوام صفحهی مانیتور رو اشغال کنه مثل آپدیت سیستم یا نصب نرمافزار.
تا جایی که میدونم هردوی اینها تو پکیجهای ubuntu هست.
terminalogy هم خیلی قشنگه. برای مدیر پنجرهی enlightenment هست که خیلی زیباست ولی یه کم باگ داشت اونموقع که تستش کردم. (اینهم داخل apt هست)
قربان شما
من اصلا عشق میکنم اینجور چیزا رو توضیح بدم. خیلی حرفهای نیستم، یه جاهایی هم ممکنه اطلاعات غلط داشته باشم و دیگران اصلاح کنن. ولی دوست دارم توضیح کامل بدم.
اونایی که الگوریتمهاش رو میسازن خیلی نابغه هستن ولی اونهایی که توی نرمافزارهاشون ازش استفاده میکنن فقط یه کم نابغه هستن (لایبرریش هست صدا میزنیم دیگه! کار خاصی نمیخوایم انجام بدیم که)
چیزی که تو دانشگاه یاد میدنو که بنداز دور!
مطالب خیلی بهتر و قشنگتری میشه پیدا کرد تو اینترنت.
پیشنهاد میکنم یه مقدار هم درمورد PGP و GPG (نسخهی free) مطالعه کنید. (مجموعهای از الگوریتمهای رمزنگاریه که RSA هم جزئی ازش به حساب میاد)
الآن دیگه کسی نمیاد همهی کارهای رمزنگاریش رو (مثلا توی چت p2p) با RSA انجام بده. چون اولا «خیلی الگوریتم سنگینیه و کند عمل میکنه» و ثانیا «حجم دیتایی که میشه باهاش رمزنگاری کرد، نمیتونه بزرگتر از حجم کلید باشه»
یعنی مثلا اگه کلیدمون 2048bit باشه (که کلید نسبتا بزرگیه)، بزرگترین پیامی که میشه باهاش رمزنگاری کرد، میتونه چیزی درحدود 2000بیت باشه. (یه کم padding هم باید داشته باشیم)
میشه پیام طولانی رو تکه تکه کرد و هر تکه رو جداگونه رمزنگاری کرد که بره و در مقصد به هم بچسبه، ولی کسی اینکارو انجام نمیده. به جاش میاد رمزنگاریهاشون رو با یه الگوریتم راحتتر انجام میدن و فقط کلیدهای اون الگوریتم رو با RSA رمز میکنن و میفرستن.
یکی از بدیهای RSA هم اینه که رمزنگاری و ساخت کلیدش، به صورت single process انجام میشه (فقط یک هستهاز CPU درگیر میشه) و نمیشه از تمام توان پردازشی سیستم استفاده کرد (تا جایی که من میدونم!) این هم باعث میشه خیلی کند باشه.
به هر حال سال 1977 که طرحشو دادن، کامپیوترها حداکثر یک هسته پردازنده داشتن
بسیار عالی
مساله اینجاست که الگوریتم های خیلی جدیدی تولید و پیاده سازی میشن. چیزی که من شخصه حس میکنم باید تقویتش کنم بحث Security Concepts هستش چون کسی که بحث امنیت رو درک کنه مخصوصا تو این دور و زمونه که بحث دیتا و نگهداری اون مطرح هست ی سر و گردن بالاتره
از الگوریتمهای جدید خبر ندارم ولی به نظرم برعکس زبونهای برنامه نویسی که اصولا جدیدترها معقولتر و بهتر از قبلیها هستن (clojure / rust / elixir / crystal) برای انتخاب الگوریتم رمزنگاری باید به قدیمیترها که جواب پس دادن اعتماد کنیم.
من فعلا درگیر clojure و rust هستم. دارم میفهمم تا اینجای کار داشتم اشتباه میرفتم
از شرکتی که توش کار میکردم اومدم بیرون، در حال گذروندن یه دورهی فشردهی «تغییر مسیر زندگی» هستم.
Crystal هنوز قابل استفاده نیست، اما چیز جالبیه
سراغ elixir و crystal نرفتم تا حالا. فقط یه کم مطالعه کردم درموردشون.
به نظرم ایدهی پشت این ۴تا زبان، قابل تحسینه! مخصوصا clojure و rust.
گرچه هنوز به نظرم یه چیزهایی میشد بهتر باشه.
من از این ایده Crystal خیلی خوشم میاد
All types are non-nilable in Crystal,
البته در Rust که اصلا Null نداریم کلا
قشنگترین قسمت rust به نظرم errorهاییه که میده.
خیلی خوشگل بهت میگه «اینجای کدت مشکل داره. اینجوریش کن درست میشه.»
یعنی حدث میزنم ۲تا ورژن بعد کامپایلر warning بده بگه «اینجاشو اشتباه نوشته بودی. درستش کردم. برو بخون یاد بگیر.»
در مورد کلوژر باید بگم که خیلی چیز جدیدی نیست و از نظر ساختاری یکی از قدیمی ترین زبان های برنامه نویسیه. منظورم LISP هست.
Elixir هم که نوع دیگری از LISP ها بحساب میاد بیشتر سعی کرده ضعف های elang رو پوشش بده و دولوپر با زبان خیلی بهتری سروکار داشته باشه، سازمان کد بهتری بوجود بیاد و غیره که واقعا هم موفق بوده و خیلی عالیه، ما کد الیکسر مینویسیم و الیکسر اونو به کد ارلنگ تبدیل میکنه و به همه کتابخانه های ارلنگ هم دسترسی داریم.
اما این وسط Rust چنتا ایده جدید به صنعت معرفی کرده که دیگران هم دارن یواش یواش از اونها استفاده میکنند.
در اون زمینه هم واقعا خوبه، اگر اون ارور ها در زمان کمپایل نبود، احتمالا در رانتایم پیش میومدند که اصلا خوب نیست.
من سعی میکنم در هیچ جایی از nil/null استفاده نکنم حتی در روبی، و این باعث میشه طراحی بهتری داشته باشم
میشه گفت lisp قدیمیترین زبونیه که هنوز زندست (فکر کنم فقط fortran هست که یه سال ازش قدیمیتره) و کلوژر برای من (که تو دنیای C و بچههاش گیر کرده بودم) چیزهای جدیدی داشت.
lisp رو دیده بودم ولی فکر میکردم منقرض شده. فکر میکردم کاربرد نداره و به خاطر weird بودنش نرفتم سمتش.
خیلی چیزهایی که من با آزمون و خطا و با تجربه یاد گرفته بودم و خیلی چیزها که هنوز یاد نگرفته بودم، توی کلوژر و راست دیدم و یاد گرفتم.
خدا خیرشون بده (سازندگانشونو)
بنظر میاد تاپیک داره بحث موضوع خارج میشه که بازم اشتباه من بود البته.